patches/glibc/2.7/130-i686-assembler.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Nov 13 18:22:23 2008 +0000 (2008-11-13)
changeset 1041 2573519c00d6
parent 744 4bf8448536d5
permissions -rw-r--r--
Merge #1195, #1196 and #1203 from /devel/YEM-build_host_target_cleanup:
- Get rid of CT_CC_NATIVE
- Get rid of CT_CANADIAN_OPT
- Sanitise CT_BUILD vs. CT_HOST

/trunk/scripts/build/tools/200-sstrip.sh | 4 2 2 0
/trunk/scripts/build/binutils.sh | 1 0 1 0 -
/trunk/scripts/build/cc/gcc.sh | 11 6 5 0 +-
/trunk/scripts/build/debug/200-duma.sh | 3 1 2 0 -
/trunk/scripts/build/libc/glibc.sh | 10 5 5 0 +-
/trunk/scripts/build/libc/eglibc.sh | 8 4 4 0 +-
/trunk/scripts/crosstool.sh | 168 113 55 0 ++++++++++++++++++++++++++------------
/trunk/config/toolchain.in | 160 137 23 0 +++++++++++++++++++++++++++++++-----
8 files changed, 268 insertions(+), 97 deletions(-)
yann@434
     1
If gcc is configured to generate i686 code or better by default (like
yann@434
     2
when using the --with-arch=pentium3 configure option), then the __i686
yann@434
     3
macro will always be defined automatically and thus screw up the
yann@434
     4
compilation of some .S files.
yann@434
     5
yann@434
     6
http://bugs.gentoo.org/131108
yann@434
     7
http://sourceware.org/ml/libc-alpha/2006-04/msg00090.html
yann@434
     8
yann@434
     9
2006-04-25  Mike Frysinger  <vapier@gentoo.org>
yann@434
    10
yann@434
    11
	* sysdeps/i386/sysdep.h (__i686): Undefine.
yann@434
    12
yann@434
    13
Index: glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h
yann@434
    14
===================================================================
yann@434
    15
--- glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h	(revision 1469)
yann@434
    16
+++ glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h	(working copy)
yann@434
    17
@@ -29,6 +29,10 @@
yann@434
    18
 #include <dl-sysdep.h>
yann@434
    19
 #include <tls.h>
yann@434
    20
yann@434
    21
+#if defined __i686 && defined __ASSEMBLER__
yann@434
    22
+#undef __i686
yann@434
    23
+#define __i686 __i686
yann@434
    24
+#endif
yann@434
    25
yann@434
    26
 /* For Linux we can use the system call table in the header file
yann@434
    27
 	/usr/include/asm/unistd.h
yann@434
    28
Index: glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c
yann@434
    29
===================================================================
yann@434
    30
--- glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c	(revision 1469)
yann@434
    31
+++ glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c	(working copy)
yann@434
    32
@@ -45,6 +45,11 @@
yann@434
    33
 /* Embed an #include to pull in the alignment and .end directives. */
yann@434
    34
 asm ("\n#include \"defs.h\"");
yann@434
    35
yann@434
    36
+asm ("\n#if defined __i686 && defined __ASSEMBLER__");
yann@434
    37
+asm ("\n#undef __i686");
yann@434
    38
+asm ("\n#define __i686 __i686");
yann@434
    39
+asm ("\n#endif");
yann@434
    40
+
yann@434
    41
 /* The initial common code ends here. */
yann@434
    42
 asm ("\n/*@HEADER_ENDS*/");
yann@434
    43