Summary: | latest linux26-headers-2.6.8.1-r1 breaks glibc | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Imad R. Faiad <irfaiad> |
Component: | [OLD] Core system | Assignee: | Tim Yamin (RETIRED) <plasmaroo> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gus.heck |
Priority: | High | ||
Version: | 2004.3 | ||
Hardware: | x86 | ||
OS: | All | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Imad R. Faiad
2005-01-04 05:28:14 UTC
Fixed now in CVS, should reach rsync servers shortly. Please sync, remerge headers and confirm that this is fixed :-] 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 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 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 @Tim, Confirm, with the #4 patch applied to linux26-headers-2.6.8.1-appCompat.patch, the problem has been resolved. Many thanks. hth 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. 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. |