Parcourir la source

i386: extend IMA guards to also cover LTO

See GCC PR47577; TODO: Remove them.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer il y a 13 ans
Parent
commit
d0aa7016ee
1 fichiers modifiés avec 5 ajouts et 2 suppressions
  1. 5 2
      libc/sysdeps/linux/i386/bits/syscalls.h

+ 5 - 2
libc/sysdeps/linux/i386/bits/syscalls.h

@@ -43,9 +43,12 @@
 
 /* We need some help from the assembler to generate optimal code.
  * We define some macros here which later will be used.  */
+/* gcc>=4.6 with LTO need the same guards as IMA (a.k.a --combine) did.
+ * See gcc.gnu.org/PR47577  */
+/* FIXME: drop these b* macros! */
 
 __asm__ (
-#ifdef __DOMULTI__
+#if defined __DOMULTI__ || __GNUC_PREREQ (4, 6)
 	/* Protect against asm macro redefinition (happens in __DOMULTI__ mode).
 	 * Unfortunately, it ends up visible in .o files. */
 	".ifndef _BITS_SYSCALLS_ASM\n\t"
@@ -92,7 +95,7 @@ __asm__ (
 	".endif\n\t"
 	".endm\n\t"
 
-#ifdef __DOMULTI__
+#if defined __DOMULTI__ || __GNUC_PREREQ (4, 6)
 	".endif\n\t" /* _BITS_SYSCALLS_ASM */
 #endif
 );