about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/i386/sysdep.h8
2 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b0e625b24d..0f743112ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-02-06  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #411]
+	* sysdeps/i386/sysdep.h (__i686): Undefine and redefine.
+
+2012-02-06  Joseph Myers  <joseph@codesourcery.com>
+
 	* sysdeps/i386/sysdep.h: Include <features.h>.
 	(GET_PC_THUNK, GET_PC_THUNK_STR): Define conditionally on compiler
 	version.
diff --git a/sysdeps/i386/sysdep.h b/sysdeps/i386/sysdep.h
index 1dbb8e12a9..c1dac6c361 100644
--- a/sysdeps/i386/sysdep.h
+++ b/sysdeps/i386/sysdep.h
@@ -23,7 +23,13 @@
 #include <features.h> /* For __GNUC_PREREQ.  */
 
 /* It is desirable that the names of PIC thunks match those used by
-   GCC so that multiple copies are eliminated by the linker.  */
+   GCC so that multiple copies are eliminated by the linker.  Because
+   GCC 4.6 and earlier use __i686 in the names, it is necessary to
+   override that predefined macro.  */
+#if defined __i686 && defined __ASSEMBLER__
+#undef __i686
+#define __i686 __i686
+#endif
 
 #ifdef	__ASSEMBLER__
 # if __GNUC_PREREQ (4, 7)