Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 76626 - latest linux26-headers-2.6.8.1-r1 breaks glibc
Summary: latest linux26-headers-2.6.8.1-r1 breaks glibc
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 All
: High normal (vote)
Assignee: Tim Yamin (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-04 05:28 UTC by Imad R. Faiad
Modified: 2005-01-05 07:13 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Imad R. Faiad 2005-01-04 05:28:14 UTC
The latest linux26-headers-2.6.8.1-r1 breaks glibc on x86, please see below.

the problem is from the new linux26-headers-2.6.8.1-appCompat.patch,
reverting to the pre 01-04-2005 version of the aforementioned patch solved the
problem.
hth

The error log:
i686-pc-linux-gnu-gcc elf-init.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-proto
types -Wwrite-strings -freorder-blocks -march=pentium4 -mtune=pentium4 -pipe -mp
referred-stack-boundary=4  -fPIC    -I../include -I. -I/mnt/sda4/tmp/portage/gli
bc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu -I.. -I../libio -I../npt
l -I/mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl
 -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i686 -I../nptl/sys
deps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pt
hread -I../sysdeps/pthread -I../nptl/sysdeps/unix/sysv -I../nptl/sysdeps/unix -I
../nptl/sysdeps/i386/i686 -I../nptl/sysdeps/i386 -I../libidn/sysdeps/unix -I../s
ysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../s
ysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/un
ix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../sysdeps/unix -I.
./sysdeps/posix -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i686 -I../sysdeps/i
386/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I.
./sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -
I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sy
sdeps/generic -nostdinc -isystem /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/include -i
system //usr/include -D_LIBC_REENTRANT -D_LIBC_REENTRANT -include ../include/lib
c-symbols.h   -DPIC -DLIBC_NONSHARED=1     -DHAVE_INITFINI -o /mnt/sda4/tmp/port
age/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu/elf-init.oS -MD -
MP -MF /mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-n
ptl/csu/elf-init.oS.dt -MT /mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build
-i686-pc-linux-gnu-nptl/csu/elf-init.oS
In file included from //usr/include/linux/bitops.h:4,
                 from //usr/include/asm/cpufeature.h:10,
                 from //usr/include/asm/system.h:7,
                 from //usr/include/linux/compiler.h:62,
                 from //usr/include/asm/sigcontext.h:4,
                 from ../sysdeps/unix/sysv/linux/bits/sigcontext.h:28,
                 from ../signal/signal.h:328,
                 from ../include/signal.h:5,
                 from ../sysdeps/unix/sysv/linux/ssp.c:27:
//usr/include/asm/bitops.h:362: error: conflicting types for '__ffs'
../include/string.h:43: error: previous declaration of '__ffs' was here
//usr/include/asm/bitops.h:362: error: conflicting types for '__ffs'
../include/string.h:43: error: previous declaration of '__ffs' was here
i686-pc-linux-gnu-gcc ../sysdeps/i386/elf/start.S -c  -I../include -I. -I/mnt/sd
a4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu -I.. -
I../libio -I../nptl -I/mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686
-pc-linux-gnu-nptl -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/
i686 -I../nptl/sysdeps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux -I
../nptl/sysdeps/pthread -I../sysdeps/pthread -I../nptl/sysdeps/unix/sysv -I../np
tl/sysdeps/unix -I../nptl/sysdeps/i386/i686 -I../nptl/sysdeps/i386 -I../libidn/s
ysdeps/unix -I../sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../
sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/in
et -I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I.
./sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i
686 -I../sysdeps/i386/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu -I.
./sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdep
s/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/g
eneric/elf -I../sysdeps/generic -nostdinc -isystem /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/include -isystem //usr/include -D_LIBC_REENTRANT -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -DHAVE_INITFINI -DASSEMBLER  -I/mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu/. -DGAS_SYNTAX  -Wa,--noexecstack  -o /mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu/start.o -MD -MP -MF /mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu/start.o.dt -MT /mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu/start.o
make[2]: *** [/mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu/ssp.os] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [/mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/build-i686-pc-linux-gnu-nptl/csu/ssp.o] Error 1
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/mnt/sda4/tmp/portage/glibc-2.3.4.20041102/work/glibc-2.3.3'
make: *** [all] Error 2

!!! ERROR: sys-libs/glibc-2.3.4.20041102 failed.
!!! Function src_compile, Line 698, Exitcode 2
!!! (no error message)
!!! If you need support, post the topmost build error, NOT this status message.
Comment 1 Tim Yamin (RETIRED) gentoo-dev 2005-01-04 09:56:11 UTC
Fixed now in CVS, should reach rsync servers shortly. Please sync, remerge headers and confirm that this is fixed :-]
Comment 2 Imad R. Faiad 2005-01-04 11:28:54 UTC
sync'ed, (confirm the new patch was there) reemerged sys-kernel/linux26-headers-2.6.8.1-r1, sys-apps/sysvinit, sys-apps/baselayout, and sys-libs/glibc.
same problems as before, so I guess this problem is not yet resolved.
to expedite matters could you post any patches here, so that i need not re-sync, as i'm on dial-up right now.
will report the results of course.
TIA
hth
Comment 3 Imad R. Faiad 2005-01-04 11:29:11 UTC
sync'ed, (confirm the new patch was there) reemerged sys-kernel/linux26-headers-2.6.8.1-r1, sys-apps/sysvinit, sys-apps/baselayout, and sys-libs/glibc.
same problems as before, so I guess this problem is not yet resolved.
to expedite matters could you post any patches here, so that i need not re-sync, as i'm on dial-up right now.
will report the results of course.
TIA
hth
Comment 4 Tim Yamin (RETIRED) gentoo-dev 2005-01-04 11:59:04 UTC
Fixed in CVS; reopen if this is still broken. Patch:

diff -u -r1.12 linux26-headers-2.6.8.1-appCompat.patch
--- files/linux26-headers-2.6.8.1-appCompat.patch       4 Jan 2005 17:55:09 -0000       1.12
+++ files/linux26-headers-2.6.8.1-appCompat.patch       4 Jan 2005 19:56:49 -0000
@@ -972,12 +972,14 @@

  /* Intel compiler defines __GNUC__. So we will overwrite implementations
   * coming from above header files here
-@@ -47,7 +59,12 @@
+@@ -47,7 +59,14 @@

  /* Optimization barrier */
  #ifndef barrier
 -# define barrier() __memory_barrier()
++# define __ffs /* Prevent ffs(...) getting declared when we don't need it */
 +# include <asm/system.h>
++# undef __ffs
 +# ifdef mb
 +#   define barrier() mb()
 +# else
Comment 5 Imad R. Faiad 2005-01-04 12:44:35 UTC
@Tim,
Confirm, with the #4 patch applied to linux26-headers-2.6.8.1-appCompat.patch,
the problem has been resolved.
Many thanks.
hth
Comment 6 Gus Heck 2005-01-04 22:03:40 UTC
This is also effecting the tarball:

stage1-x86-selinux-pie-ssp-20041123.tar.bz2
(on Pentium II)

without the patch in comment 4 the bootstrap.sh runs until it tries to compile ../sysdeps/unix/sysv/linux/ssp.c, then I get the same error....

applying the patch creates a syntax error on line 361 of bitops.h...

  HOSTCC  scripts/basic/docproc
In file included from /var/tmp/portage/linux26-headers-2.6.8.1-r1/work/linux-2.6.8.1/include/linux/bitops.h:4,
                 from /var/tmp/portage/linux26-headers-2.6.8.1-r1/work/linux-2.6.8.1/include/asm/cpufeature.h:10,
                 from /var/tmp/portage/linux26-headers-2.6.8.1-r1/work/linux-2.6.8.1/include/asm/system.h:7,
                 from /var/tmp/portage/linux26-headers-2.6.8.1-r1/work/linux-2.6.8.1/include/linux/compiler.h:10,
                 from /var/tmp/portage/linux26-headers-2.6.8.1-r1/work/linux-2.6.8.1/include/asm/sigcontext.h:10,
                 from /usr/include/bits/sigcontext.h:28,
                 from /usr/include/signal.h:329,
                 from /usr/include/sys/wait.h:30,
                 from scripts/basic/docproc.c:41:
/var/tmp/portage/linux26-headers-2.6.8.1-r1/work/linux-2.6.8.1/include/asm/bitops.h:361: error: syntax error before "unsigned"

I don't do much C, but this is apparently because bitops.c:361 is:

static inline unsigned long __ffs(unsinged long word)

which probably has the __ffs replaced with nothing (per the #define added in the patch) and becomes:

static inline unsigned long (unsinged long word)

I'm guessing that this patch works for recompiling glibc only but is not suitable as a general solution that can be employed in broader contexts such as bootstrapping. 

Your bugzilla apparently doesn't like new users, so I can't reopen the issue. bleh.
Comment 7 Tim Yamin (RETIRED) gentoo-dev 2005-01-05 07:13:16 UTC
Gus: Sync and remerge your headers; it seems like you're applying the patch without its requisite (the comment #4 patch is in the latest headers anyway too); as the latest headers do this:

{ bitops.h }
#ifndef __fls
< Prototype __fls >
#endif

... so the prototype which gets expanded to "static inline unsigned long (unsinged long word)" never gets reached as __fls *is* defined (even though it's NULL) and hence you should get no problem.