patches/glibc/2.7/130-i686-assembler.patch
author Daniel Price <daniel.price@gmail.com>
Tue Nov 20 16:59:17 2012 -0800 (2012-11-20)
branch1.17
changeset 3129 b8e00eab8f81
parent 744 4bf8448536d5
permissions -rw-r--r--
scripts: fail on ':' in paths

Signed-off-by: Daniel Price <daniel.price@gmail.com>
[yann.morin.1998@free.fr: split original patch for self-contained changes]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com>
Patchwork-Id: 200536
(transplanted from 15cd5dc25929d0ccd0e1f187fe721a1ca0d48919)
     1 If gcc is configured to generate i686 code or better by default (like
     2 when using the --with-arch=pentium3 configure option), then the __i686
     3 macro will always be defined automatically and thus screw up the
     4 compilation of some .S files.
     5 
     6 http://bugs.gentoo.org/131108
     7 http://sourceware.org/ml/libc-alpha/2006-04/msg00090.html
     8 
     9 2006-04-25  Mike Frysinger  <vapier@gentoo.org>
    10 
    11 	* sysdeps/i386/sysdep.h (__i686): Undefine.
    12 
    13 Index: glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h
    14 ===================================================================
    15 --- glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h	(revision 1469)
    16 +++ glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h	(working copy)
    17 @@ -29,6 +29,10 @@
    18  #include <dl-sysdep.h>
    19  #include <tls.h>
    20 
    21 +#if defined __i686 && defined __ASSEMBLER__
    22 +#undef __i686
    23 +#define __i686 __i686
    24 +#endif
    25 
    26  /* For Linux we can use the system call table in the header file
    27  	/usr/include/asm/unistd.h
    28 Index: glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c
    29 ===================================================================
    30 --- glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c	(revision 1469)
    31 +++ glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c	(working copy)
    32 @@ -45,6 +45,11 @@
    33  /* Embed an #include to pull in the alignment and .end directives. */
    34  asm ("\n#include \"defs.h\"");
    35 
    36 +asm ("\n#if defined __i686 && defined __ASSEMBLER__");
    37 +asm ("\n#undef __i686");
    38 +asm ("\n#define __i686 __i686");
    39 +asm ("\n#endif");
    40 +
    41  /* The initial common code ends here. */
    42  asm ("\n/*@HEADER_ENDS*/");
    43