--- Begin Message ---
- From: "eric dot valette at free dot fr" <sourceware-bugzilla at sources dot redhat dot com>
- To: eric dot valette at free dot fr
- Date: 6 Nov 2004 13:01:30 -0000
- Subject: [Bug libc/519] New: CVS Compilation failure using nptl + static
- Reply-to: sourceware-bugzilla at sources dot redhat dot com
The debian packaging of libc6-dev, is totally broken :
1) use NPTL when kernel permits AND dynamic linking,
2) use linuxThread in static linking mode
3) provide only the linuxthreads related include and not the nptl one
even conditionnaly via separate packages or into separate directory
I tried to recompile debian libc myself using nptl and static but the result
crash at startup when initializing nptl. Instead of starting debugging ancient
code, I extracted from cvs the latest version and rebuild using :
../libc/configure --host=i486-linux --build=i486-linux --without-cvs
--enable-add-ons=nptl --with-tls --disable-shared --with-__thread
--enable-kernel=2.6.0 --prefix=/usr/local/npltstatic
--oldincludedir=/usr/include CC=gcc-3.3 CPPFLAGS='-isystem
/home/valette/local/local-src/glibc-2.3.2.ds1/debian/include'
Doing this I found the following problems. This list of mofified file is as follow :
find . -name "*~" -print
./sysdeps/unix/sysv/linux/i386/syscalls.list.~1.19.~
./sysdeps/unix/sysv/linux/i386/setegid.c.~1.7.~
./sysdeps/unix/sysv/linux/i386/seteuid.c.~1.6.~
./sysdeps/unix/sysv/linux/i386/setgid.c.~1.7.~
./sysdeps/unix/sysv/linux/i386/setregid.c.~1.11.~
./sysdeps/unix/sysv/linux/i386/setresgid.c.~1.12.~
./sysdeps/unix/sysv/linux/i386/setresuid.c.~1.13.~
./sysdeps/unix/sysv/linux/i386/setreuid.c.~1.11.~
./sysdeps/unix/sysv/linux/i386/setuid.c.~1.8.~
But at least the resulting libc.a, libpthread.a works as expected :-)
all the set*.c syscall is the same modification : do not use
__libc_ppthread_functions if not shared... Patch follows.
diff -u sysdeps/unix/sysv/linux/i386/setegid.c.~1.7.~
sysdeps/unix/sysv/linux/i386/setegid.c
--- sysdeps/unix/sysv/linux/i386/setegid.c.~1.7.~ 2004-09-20
01:44:35.000000000 +0200
+++ sysdeps/unix/sysv/linux/i386/setegid.c 2004-11-04 00:11:56.000000000 +0100
@@ -59,8 +59,8 @@
result = __setregid (-1, gid);
#endif
-#if defined HAVE_PTR__NPTL_SETXID && !defined SINGLE_THREAD
- if (result == 0 && __libc_pthread_functions.ptr__nptl_setxid != NULL)
+#if defined HAVE_PTR__NPTL_SETXID && !defined SINGLE_THREAD && defined (SHARED)
+ if (result == 0 && __libc_ppthread_functions.ptr__nptl_setxid != NULL) {
struct xid_command cmd;
cmd.syscall_no = __NR_setresgid32;
The syscalls.list modification is because a Makefile makes reference to vm86.o
and latter to vm86.op but that it is not generated.
diff -u sysdeps/unix/sysv/linux/i386/syscalls.list.~1.19.~
sysdeps/unix/sysv/linux/i386/syscalls.list
--- sysdeps/unix/sysv/linux/i386/syscalls.list.~1.19.~ 2004-03-10
09:38:15.000000000 +0100
+++ sysdeps/unix/sysv/linux/i386/syscalls.list 2004-11-03 23:45:10.000000000 +0100
@@ -2,7 +2,7 @@
modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt
vm86old EXTRA vm86old i:p __vm86old
vm86@GLIBC_2.0
-vm86 - vm86 i:ip __vm86 vm86@@GLIBC_2.3.4
+vm86 - vm86 i:ip __vm86 vm86
oldgetrlimit EXTRA getrlimit i:ip __old_getrlimit getrlimit@GLIBC_2.0
oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0
time - time Ei:p time
--
Summary: CVS Compilation failure using nptl + static
Product: glibc
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: libc
AssignedTo: gotom at debian dot or dot jp
ReportedBy: eric dot valette at free dot fr
CC: glibc-bugs at sources dot redhat dot com
GCC build triplet: i486-linux
GCC host triplet: i486-linux
GCC target triplet: i486-linux
http://sources.redhat.com/bugzilla/show_bug.cgi?id=519
------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.
--- End Message ---