[uClibc]Problem linking with libpthread

Jonathan Hankins jhankins at homewood.k12.al.us
Thu May 16 10:20:04 MDT 2002


Hey,

My glibc is GNU libc 2.2.5.  My (non-uclibc) libpthread is from that
same version of glibc.  My gcc version is listed below -- I re-ran my
example compiles using the -v argument to gcc, so you can see exactly
what is happening.  

I ran a diff on the output from gcc -v linking with uclibc libdl, and
gcc -v linking with uclibc libpthread, and the only differences I could
find were the names of the temporary files used by the compiler, linker,
etc.  In other words, the commands being generated by the gcc wrapper
don't appear to be any different when I link with uclibc libpthread than
when I link with uclibc libdl.  But uclibc libdl links correctly, while
libpthread does not.

--
Script started on Thu May 16 09:04:19 2002

$ export PATH=/usr/i386-linux-uclibc/bin:$PATH

$ gcc -v test.c -ldl
Invoked as gcc
arg[ 0] = /usr/bin/gcc
arg[ 1] = -nostdlib
arg[ 2] = -Wl,--dynamic-linker,/lib/ld-uClibc.so.0
arg[ 3] = -Wl,-rpath-link,/usr/i386-linux-uclibc/lib
arg[ 4] = -L/usr/i386-linux-uclibc/lib
arg[ 5] = -L/usr/i386-linux-uclibc/lib
arg[ 6] = -nostdinc
arg[ 7] = -isystem
arg[ 8] = /usr/i386-linux-uclibc/include/
arg[ 9] = -isystem
arg[10] = /usr/lib/gcc-lib/i386-linux/2.95.4/include
arg[11] = /usr/i386-linux-uclibc/lib/crt0.o
arg[12] = -v
arg[13] = test.c
arg[14] = -lgcc
arg[15] = -ldl
arg[16] = -lc
arg[17] = -lgcc
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20011002 (Debian prerelease)
 /usr/lib/gcc-lib/i386-linux/2.95.4/cpp0 -lang-c -nostdinc -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -isystem /usr/i386-linux-uclibc/include/ -isystem /usr/lib/gcc-lib/i386-linux/2.95.4/include test.c /tmp/ccLQQecy.i
GNU CPP version 2.95.4 20011002 (Debian prerelease) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/i386-linux-uclibc/include
 /usr/lib/gcc-lib/i386-linux/2.95.4/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3
 /usr/local/include
 /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../i386-linux/include
 /usr/lib/gcc-lib/i386-linux/2.95.4/include
 /usr/include
End of omitted list.
 /usr/lib/gcc-lib/i386-linux/2.95.4/cc1 /tmp/ccLQQecy.i -quiet -dumpbase test.c -version -o /tmp/cci1tJ6q.s
GNU C version 2.95.4 20011002 (Debian prerelease) (i386-linux) compiled by GNU C version 2.95.4 20011002 (Debian prerelease).
 as -V -Qy -o /tmp/ccaQdOKC.o /tmp/cci1tJ6q.s
GNU assembler version 2.12.90.0.1 (i386-linux) using BFD version 2.12.90.0.1 20020307 Debian/GNU Linux
 /usr/lib/gcc-lib/i386-linux/2.95.4/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -L/usr/i386-linux-uclibc/lib -L/usr/i386-linux-uclibc/lib -L/usr/lib/gcc-lib/i386-linux/2.95.4 --dynamic-linker /lib/ld-uClibc.so.0 -rpath-link /usr/i386-linux-uclibc/lib /usr/i386-linux-uclibc/lib/crt0.o /tmp/ccaQdOKC.o -lgcc -ldl -lc -lgcc

$ gcc -v test.c -lpthread
Invoked as gcc
arg[ 0] = /usr/bin/gcc
arg[ 1] = -nostdlib
arg[ 2] = -Wl,--dynamic-linker,/lib/ld-uClibc.so.0
arg[ 3] = -Wl,-rpath-link,/usr/i386-linux-uclibc/lib
arg[ 4] = -L/usr/i386-linux-uclibc/lib
arg[ 5] = -L/usr/i386-linux-uclibc/lib
arg[ 6] = -nostdinc
arg[ 7] = -isystem
arg[ 8] = /usr/i386-linux-uclibc/include/
arg[ 9] = -isystem
arg[10] = /usr/lib/gcc-lib/i386-linux/2.95.4/include
arg[11] = /usr/i386-linux-uclibc/lib/crt0.o
arg[12] = -v
arg[13] = test.c
arg[14] = -lgcc
arg[15] = -lpthread
arg[16] = -lc
arg[17] = -lgcc
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20011002 (Debian prerelease)
 /usr/lib/gcc-lib/i386-linux/2.95.4/cpp0 -lang-c -nostdinc -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -isystem /usr/i386-linux-uclibc/include/ -isystem /usr/lib/gcc-lib/i386-linux/2.95.4/include test.c /tmp/cczA7y9t.i
GNU CPP version 2.95.4 20011002 (Debian prerelease) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/i386-linux-uclibc/include
 /usr/lib/gcc-lib/i386-linux/2.95.4/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3
 /usr/local/include
 /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../i386-linux/include
 /usr/lib/gcc-lib/i386-linux/2.95.4/include
 /usr/include
End of omitted list.
 /usr/lib/gcc-lib/i386-linux/2.95.4/cc1 /tmp/cczA7y9t.i -quiet -dumpbase test.c -version -o /tmp/ccY0Q0BS.s
GNU C version 2.95.4 20011002 (Debian prerelease) (i386-linux) compiled by GNU C version 2.95.4 20011002 (Debian prerelease).
 as -V -Qy -o /tmp/cctKGTmh.o /tmp/ccY0Q0BS.s
GNU assembler version 2.12.90.0.1 (i386-linux) using BFD version 2.12.90.0.1 20020307 Debian/GNU Linux
 /usr/lib/gcc-lib/i386-linux/2.95.4/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -L/usr/i386-linux-uclibc/lib -L/usr/i386-linux-uclibc/lib -L/usr/lib/gcc-lib/i386-linux/2.95.4 --dynamic-linker /lib/ld-uClibc.so.0 -rpath-link /usr/i386-linux-uclibc/lib /usr/i386-linux-uclibc/lib/crt0.o /tmp/cctKGTmh.o -lgcc -lpthread -lc -lgcc

$ exit
Script done on Thu May 16 09:11:28 2002
--

On Thu, May 16, 2002 at 11:12:44AM +1000, Alex Song wrote:
> hi,
> 
> i am experiencing the same problem when i try to compile directfb with 
> uclibc. i have tried to compile directfb with the uclibc toolchain and the 
> same thing happens, that libpthread does not link properly. my host is x86 
> (redhat 7.0) and my target is also x86. i am still looking into it to find 
> out the problem. what is your version of gcc and glibc ?
> 
> cheers,
> 
> alex
> 
> At 01:23 AM 05/16/2002, Jonathan Hankins wrote:
> >Hi,
> >
> >I am having a problem linking with the libpthread.so included with
> >uclibc.
> >
> >My system is Debian GNU/Linux 3.0 (woody) on i386 architecture.
> >
> >My uclibc debian package is version 0.9.11-cvs20020419-1.
> >
> >When I link with libpthread, it is linking with the glibc libpthread in
> >/lib, instead of the uclibc libpthread in /usr/i386-linux-uclibc/lib.

-- 
--------------------------------------------------------------------------
Jonathan Hankins	Homewood City Schools

jhankins at homewood.k12.al.us
--------------------------------------------------------------------------



More information about the uClibc mailing list