| 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*/"); |
| |