diff options
Diffstat (limited to 'toolchain/glibc/patches')
-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 |