[uClibc]directfb pthread linking problems
Alex SONG
zzaleson at uqconnect.net
Fri May 24 07:36:56 UTC 2002
On Thu, 23 May 2002, Erik Andersen wrote:
> On Thu May 09, 2002 at 12:35:02PM +1000, Alex Song wrote:
> > hi,
> >
> > from uclibc web site it said that directfb was supported. i tried this out
> > and got some pthread linking problems.
> >
> > i used both 0.9.9 and cvs versions of directfb and 0.9.11 and cvs versions
> > of uclibc. i enabled thread support in uclibc and the architecture is x86.
> > to compile directfb i changed my path and then ran configure and then make.
> >
> > after compiling directfb i did a ldd (the uclibc one) on the compiled
> > library and i get this:
> >
> > libdl.so.0 => /usr/i386-linux-uclibc/lib/libdl.so.0
> > libpthread.so.0 => /lib/libpthread.so.0
>
> The problem here is that both the uClibc and the system versions
> of libpthread have the exact same soname: libpthread.so.0. It
> turns out that when I last updated the dynamic library loader to
> ensure it would always find and load the correct library, I
> forgot to update the ldd app to match. Fixing that now,
i just updated from cvs and tried to build uclibc-directfb again and now
the uclibc-ldd crashes when i try to run it and normal ldd returns:
/lib/libNoVersion.so.1 => /lib/libNoVersion.so.1 (0x4002d000)
libdl.so.0 => not found
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40045000)
libc.so.0 => not found
libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
so it looks like it is still linking glibc's libpthread and not uclibc's.
the "not found" just means i haven't added the uclibc path to ld.so.conf.
this is with the latest cvs directfb and latest uclibc and i haven't tried
it with the uclibc toolchain, this was done by setting the path to
/usr/i386-linux-uclibc/bin
i tried the same compile except i set
LD_LIBRARY_PATH=/usr/i386-linux-uclibc/lib
the uclibc ldd outputed:
libdl.so.0 => /usr/i386-linux-uclibc/lib//libdl.so.0
libpthread.so.0 => /usr/i386-linux-uclibc/lib//libpthread.so.0
libc.so.0 => /usr/i386-linux-uclibc/lib//libc.so.0
(null) => (null)
where i "think" null => null should be the uclibc dynamic loader.
the normal ldd outputed:
/lib/libNoVersion.so.1 => /lib/libNoVersion.so.1 (0x4002d000)
libdl.so.0 => /usr/i386-linux-uclibc/lib/libdl.so.0 (0x40030000)
libpthread.so.0 => /usr/i386-linux-uclibc/lib/libpthread.so.0
(0x40033000)
libc.so.0 => /usr/i386-linux-uclibc/lib/libc.so.0 (0x40044000)
libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
do you have any gut feelings to what is going on here ? directfb uses
automake, autoconf and libtool.
cheers,
alex
More information about the uClibc
mailing list