This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: a question about compiling nptl in glibc
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: "Hu, Boris" <boris dot hu at intel dot com>
- Cc: "Libc-Alpha (E-mail)" <libc-alpha at sources dot redhat dot com>
- Date: Tue, 25 Mar 2003 08:59:50 -0500
- Subject: Re: a question about compiling nptl in glibc
- References: <37FBBA5F3A361C41AB7CE44558C3448E1A1760@pdsmsx403.ccr.corp.intel.com>
On Tue, Mar 25, 2003 at 01:27:33PM +0800, Hu, Boris wrote:
>
> I could cross-compiled glibc-2.3.2 with glibc-linuxthreads-2.3.2
> with the target arm-linux using Daniel's patches.
>
> However, when adding my nptl arm patch(with the same patch,
> I could get the libpthread.a in one glibc version), the glibc makefile
> seems not to compile nptl.
>
> any hints/pointers? thanks a lot.
>
> $ pwd
> /boris/toolchain/glibc-2.3.2/sea2
>
> $ ../configure arm-linux --prefix=/tmp/install --enable-add-ons=nptl
> --without-tls --without-__thread --build=i686-pc-linux-gnu
>
> $ make
> ......
> arm-linux-gcc -shared -static-libgcc -Wl,-O1 -Wl,-z,defs -Wl,-dynamic-linker=/tmp/install/lib/ld-linux.so.2 -B/boris/toolchain/glibc-2.3.2/sea2/csu/ -Wl,--version-script=/boris/toolchain/glibc-2.3.2/sea2/libc.map -Wl,-soname=libc.so.6 -Wl,-z,combreloc -nostdlib -nostartfiles -e __libc_main -u __register_frame -L/boris/toolchain/glibc-2.3.2/sea2 -L/boris/toolchain/glibc-2.3.2/sea2/math -L/boris/toolchain/glibc-2.3.2/sea2/elf -L/boris/toolchain/glibc-2.3.2/sea2/dlfcn -L/boris/toolchain/glibc-2.3.2/sea2/nss -L/boris/toolchain/glibc-2.3.2/sea2/nis -L/boris/toolchain/glibc-2.3.2/sea2/rt -L/boris/toolchain/glibc-2.3.2/sea2/resolv -L/boris/toolchain/glibc-2.3.2/sea2/crypt -L/boris/toolchain/glibc-2.3.2/sea2/nptl -Wl,-rpath-link=/boris/toolchain/glibc-2.3.2/sea2:/boris/toolchain/glibc-2.3.2/sea2/math:/boris/toolchain/glibc-2.3.2/sea2/elf:/boris/toolchain/glibc-2.3.2/sea2/dlfcn:/boris/toolchain/glibc-2.3.2/sea2/nss:/boris/toolchain/glibc-2.3.2/sea2/nis:/boris/toolchain/glibc-2.3.2/sea2/rt:/boris/toolchain/glibc-2.3.2/sea2/resolv:/boris/toolchain/glibc-2.3.2/sea2/crypt:/boris/toolchain/glibc-2.3.2/sea2/nptl -o /boris/toolchain/glibc-2.3.2/sea2/libc.so -T /boris/toolchain/glibc-2.3.2/sea2/libc.so.lds /boris/toolchain/glibc-2.3.2/sea2/csu/abi-note.o /boris/toolchain/glibc-2.3.2/sea2/elf/soinit.os /boris/toolchain/glibc-2.3.2/sea2/libc_pic.os /boris/toolchain/glibc-2.3.2/sea2/elf/sofini.os /boris/toolchain/glibc-2.3.2/sea2/elf/interp.os /boris/toolchain/glibc-2.3.2/sea2/elf/ld.so -lgcc
> /boris/toolchain/glibc-2.3.2/sea2/libc_pic.os(.text+0x1453c): In function `*__GI___sigsuspend':
> ../sysdeps/unix/sysv/linux/sigsuspend.c:93: undefined reference to `__libc_multiple_threads'
> .....
> collect2: ld returned 1 exit status
> make[1]: *** [/boris/toolchain/glibc-2.3.2/sea2/libc.so] Error 1
> make[1]: Leaving directory `/boris/toolchain/glibc-2.3.2'
> make: *** [all] Error 2
Whatever patch you're using is probably broken. However, the line
above doesn't make any sense. It is not possible to build NPTL without
both TLS and __thread.
Unless someone at Intel's done it and not talked about it, binutils,
gcc, and probably the kernel all need to be updated for ARM TLS
support.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer