This is the mail archive of the libc-alpha@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Binary compatibility between glibc 2.1.0/2.1.1 and 2.1.2 ?


>>>>> Ulrich Drepper writes:

    Ulrich> Juergen Kreileder <kreilede@issan.cs.uni-dortmund.de> writes:
    >> This doesn't work, e.g. if a binary/library needs
    >> sem_wait@@GLIBC_2.1 it won't run with glibc 2.1/2.1.1.

    Ulrich> Binaries build with these versions indeed do not work
    Ulrich> since there were problems with this.  Nobody should use
    Ulrich> 2.1 and 2.1.1 anymore once 2.1.2 is out.  There are good
    Ulrich> reasons why new versions come out.

I have no problems with this.

    >> I have one report about about problems with the Java Invocation
    >> API.  The user tried link his binary against a library from the
    >> JDK (built with glibc 2.1) on a glibc-2.1.2pre3 system.  He got
    >> this error message:
    >> 
    >> /usr/lib/jdk1.1/lib/i386/native_threads/libjava.so: undefined reference to `sem_destroy@@GLIBC_2.0'
    >> /usr/lib/jdk1.1/lib/i386/native_threads/libjava.so: undefined reference to `sem_post@@GLIBC_2.0'
    >> /usr/lib/jdk1.1/lib/i386/native_threads/libjava.so: undefined reference to `sem_wait@@GLIBC_2.0'
    >> /usr/lib/jdk1.1/lib/i386/native_threads/libjava.so: undefined reference to `sem_init@@GLIBC_2.0'
    >> collect2: ld returned 1 exit status

    Ulrich> And it is good that this happens since the semaphore
    Ulrich> implementation in 2.1 is the one which is made available
    Ulrich> as GLIBC_2.1.

IMHO this is inconvenient: Doesn't that mean that every time glibc
introduces a new symbol version (like the GLIBC_2.1 sem_* versions in
glibc 2.1.2) you'll have to upgrade all libraries that use the old
versions because otherwise you can't use these libraries for
development anymore.

    Ulrich> As said before, there are "incompatiblities" when without
    Ulrich> them the binaries would be buggy.  And this is one of the
    Ulrich> cases.

Binaries linked with the old versions still work.  This looks somehow
inconsequent because they use the buggy old versions.


        Juergen

-- 
Juergen Kreileder, Blackdown Java-Linux Porting Team
http://www.blackdown.org/java-linux.html

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]