This is the mail archive of the libc-alpha@sourceware.org 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]
Other format: [Raw text]

Re: ld-linux.so.2 cannot process libpthread.so.0


Hi everyone, just thought I'd let you know that I managed to sort out
this problem, although I'm still not sure why.

It turns out there are two files named libpthread.so.0 that are
required.  I originally ran 'ldd' on my program and it told me I
needed /lib/tls/libpthread.so.0.  I did some searching around and
found another file with the same name (but different contents)
/lib/libpthread.so.0, so I moved that one over to my target root file
system and now it works!

However my program now seems to use the older LinuxThreads instead of
NPTL.  The 'ps' command now shows an entry for each thread, which I
think is the LinuxThreads behaviour.  I still need to make my program
work with NPTL, but for now have a workaround.

Can anyone here confirm what the purpose of the files
/lib/libpthread.so.0 and /lib/tls/libpthread.so.0?  What do you
suggest I do to get NPTL working?  I really don't believe it is a
versioning issue since it works in a chroot environment on the same
flash card when I run it on my laptop.

Thanks,
Mark

On 12/1/05, Steve Munroe <sjmunroe@us.ibm.com> wrote:
> Mark Jessee <mjessee04@gmail.com> wrote on 12/01/2005 04:17:58 PM:
>
> > > run the file command on your application and /lib/tls/libpthread.so.0
> > >
> > > Are you perhaps mixing 32-/64-bit binaries? The load with skip over
> > > libraries for a different ABI. The file command will show this.
> > >
> > >
> >
> > All binaries appear to be 32-bit i386.  Here is the output from the
> > file command:
> >
> > [mark@localhost tmp]$ file hello
> > hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
> > GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
> > [mark@localhost tmp]$ file /lib/tls/libpthread.so.0
> > /lib/tls/libpthread.so.0: symbolic link to `libpthread-0.10.so'
> > [mark@localhost tmp]$ file /lib/tls/libpthread-0.10.so
> > /lib/tls/libpthread-0.10.so: ELF 32-bit LSB shared object, Intel
> > 80386, version1 (SYSV), not stripped
>
> Next issue is versioning.
>
> objdump -x hello
> objdump -x /lib/tls/libpthread-0.10.so
> objdump -x /lib/tls/libc.so
>
> You are looking for information like:
>
> Dynamic Section:
>   NEEDED      libpthread.so.0
>   NEEDED      libc.so.6
>
> and
>
> Version References:
>   required from libpthread.so.0:
>     0x0d696910 0x00 04 GLIBC_2.0
>     0x0d696911 0x00 03 GLIBC_2.1
>   required from libc.so.6:
>     0x0d696911 0x00 05 GLIBC_2.1
>     0x0d696910 0x00 02 GLIBC_2.0
>
>
>
>


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