diff options
author | Phil Sutter <phil.sutter@viprinet.com> | 2011-01-07 18:21:54 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2011-01-10 10:45:27 +0100 |
commit | 3adbe63f92a5215422ad4e8f9adc924bb1936101 (patch) | |
tree | dbee889453570ddb826f3b0d85f5b2f6f7632b3d /toolchain/glibc | |
parent | cd2a83de0dd0ce7ad56688a625b0da0dd4b9ccc2 (diff) |
glibc: fix build for ADK_TARGET_CFLAGS="-march=i686"
Signed-off-by: Phil Sutter <phil.sutter@viprinet.com>
Diffstat (limited to 'toolchain/glibc')
-rw-r--r-- | toolchain/glibc/patches/i686_define_bug.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/toolchain/glibc/patches/i686_define_bug.patch b/toolchain/glibc/patches/i686_define_bug.patch new file mode 100644 index 000000000..0414fecc9 --- /dev/null +++ b/toolchain/glibc/patches/i686_define_bug.patch @@ -0,0 +1,38 @@ + Fix for compiling glibc with -march=i686 specified. + The patch below found at: http://permalink.gmane.org/gmane.linux.lfs.devel/9758, + a nice discussion (with a comment of the glibc maintainer) can be found here: + http://old.nabble.com/-RFC-PATCH--glibc-doesn%27t-build-with-%22gcc--march%3Di686%22-td17442608.html + + To me, this simply shows once more how fucked up things can be. E.g. the (related) bug report here: + http://bugs.gentoo.org/show_bug.cgi?id=201815. There are lots of duplicates to it, many people are + affected, one can find really elaborate reports. And the responsible gentoo developers are too + elite to even point to the actual patch fixing the issue. +diff -Naur glibc-2.11.1-orig/nptl/sysdeps/pthread/pt-initfini.c glibc-2.11.1/nptl/sysdeps/pthread/pt-initfini.c +--- glibc-2.11.1-orig/nptl/sysdeps/pthread/pt-initfini.c 2009-12-08 20:10:20.000000000 +0000 ++++ glibc-2.11.1/nptl/sysdeps/pthread/pt-initfini.c 2010-04-17 02:24:02.000000000 +0100 +@@ -45,6 +45,11 @@ + /* Embed an #include to pull in the alignment and .end directives. */ + asm ("\n#include \"defs.h\""); + ++asm ("\n#if defined __i686 && defined __ASSEMBLER__"); ++asm ("\n#undef __i686"); ++asm ("\n#define __i686 __i686"); ++asm ("\n#endif"); ++ + /* The initial common code ends here. */ + asm ("\n/*@HEADER_ENDS*/"); + +diff -Naur glibc-2.11.1-orig/sysdeps/unix/sysv/linux/i386/sysdep.h glibc-2.11.1/sysdeps/unix/sysv/linux/i386/sysdep.h +--- glibc-2.11.1-orig/sysdeps/unix/sysv/linux/i386/sysdep.h 2009-12-08 20:10:20.000000000 +0000 ++++ glibc-2.11.1/sysdeps/unix/sysv/linux/i386/sysdep.h 2010-04-17 02:24:02.000000000 +0100 +@@ -29,6 +29,10 @@ + #include <dl-sysdep.h> + #include <tls.h> + ++#if defined __i686 && defined __ASSEMBLER__ ++#undef __i686 ++#define __i686 __i686 ++#endif + + /* For Linux we can use the system call table in the header file + /usr/include/asm/unistd.h |