[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#41051: Threads problem (libpthread.so.0) with libc6_2.1.1-12



Package: libc6
Version: 2.1.1-12

The following problem occured after updating to the above mentioned
debian package in a Debian 2.1 environment.  Executing a binary that
uses pthreads, compiled in Debian 2.0 or 2.1, results in the following
error:
Segmentation fault

Recompilation of my program fixed the problem.  However, 
recompilation should not be necessary.  Following are the library
dependencies for the program that exposed the problem:

:~/bin$ ldd test
        libpthread.so.0 => /lib/libpthread.so.0 (0x40006000)
        libc.so.6 => /lib/libc.so.6 (0x40017000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)

The binaries and source of the test program are available at
http://ee1.bradley.edu/~jodaman/deb/libc6_2.1.1-12.bugdemo.tgz

My first guess of the problem is broken binary compatibility between the
shared libraries, libpthread-0.7.so (in Debian 2.0 
and Debian 2.1) and libpthread-0.8.so (only in the libc6_2.1.1
package).  However, as far as I know, it could be glibc's fault, as I
found the following dependencies of libpthread:

:~$ ldd /lib/libpthread-0.8.so 
        libc.so.6 => /lib/libc.so.6 (0x40015000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)

After replacing libpthread-0.8.so with libpthread-0.7.so again, I got
the same problem (Segmentation fault) with the old binary. (The new
binary now also fails, as expected).  This suggests a potential problem
with glibc that conflicts with information in the glibc FAQ (included in
libc6_2.1.1-12.deb):

  2.27.   What needs to be recompiled when upgrading from
          glibc 2.0 to glibc 2.1?

          {AJ,CG} If you just upgrade the glibc from 2.0.x
          (x <= 7) to 2.1, binaries that have been linked
          against glibc 2.0 will continue to work.

Debian 2.0 and 2.1 use glibc 2.0.7, and so the above statement
applies.  By this, glibc (libc.so.6) or it's dynamic linker
(ld-linux.so.2) in libc6_2.1.1-12.deb violates the desired behavior.

Test environment:
Debian 2.1 (i386) + libc6_2.1.1-12 + libc6-dev_2.1.1-12,
Linux 2.0.36.

Please let me know if you have any questions, comments, or 
especially solutions.

Regards,

- John
(jodaman@ee1.bradley.edu)


Reply to: