summaryrefslogtreecommitdiff
path: root/patches/glibc/2.7/130-i686-assembler.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/glibc/2.7/130-i686-assembler.patch')
-rw-r--r--patches/glibc/2.7/130-i686-assembler.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/patches/glibc/2.7/130-i686-assembler.patch b/patches/glibc/2.7/130-i686-assembler.patch
new file mode 100644
index 0000000..09c8754
--- /dev/null
+++ b/patches/glibc/2.7/130-i686-assembler.patch
@@ -0,0 +1,43 @@
+If gcc is configured to generate i686 code or better by default (like
+when using the --with-arch=pentium3 configure option), then the __i686
+macro will always be defined automatically and thus screw up the
+compilation of some .S files.
+
+http://bugs.gentoo.org/131108
+http://sourceware.org/ml/libc-alpha/2006-04/msg00090.html
+
+2006-04-25 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/i386/sysdep.h (__i686): Undefine.
+
+Index: glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h
+===================================================================
+--- glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h (revision 1469)
++++ glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h (working copy)
+@@ -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
+Index: glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c
+===================================================================
+--- glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c (revision 1469)
++++ glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c (working copy)
+@@ -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*/");
+