This is the mail archive of the libc-alpha@sources.redhat.com 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]

[Fwd: [Bug libc/519] New: CVS Compilation failure using nptl + static]


Hi,

Just in case someone is interested in building NPTL enabled shared library from current CVS (at most 3 days all).

Have a nice day,

-- eric


--- Begin Message ---
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 ---

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