This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
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