patches/glibc/2.12.1/900-march-i686.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:43:07 2011 +0200 (2011-07-17)
changeset 2893 a8a65758664f
permissions -rw-r--r--
cc/gcc: do not use the core pass-2 to build the baremetal compiler

In case we build a baremetal compiler, use the standard passes:
- core_cc is used to build the C library;
- as such, it is meant to run on build, not host;
- the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
eha@2378
     1
2007-02-15  Khem Raj  <kraj@xxxxxxxxxx>
eha@2378
     2
eha@2378
     3
       * sysdeps/unix/sysv/linux/i386/sysdep.h: Re-define __i686.
eha@2378
     4
       * nptl/sysdeps/pthread/pt-initfini.c: Ditto.
eha@2378
     5
eha@2378
     6
diff -urN glibc-2.12.1.orig/nptl/sysdeps/pthread/pt-initfini.c glibc-2.12.1/nptl/sysdeps/pthread/pt-initfini.c
eha@2378
     7
--- glibc-2.12.1.orig/nptl/sysdeps/pthread/pt-initfini.c	2009-10-30 18:17:08.000000000 +0100
eha@2378
     8
+++ glibc-2.12.1/nptl/sysdeps/pthread/pt-initfini.c	2010-12-30 11:36:19.858708534 +0100
eha@2378
     9
@@ -45,6 +45,11 @@
eha@2378
    10
 /* Embed an #include to pull in the alignment and .end directives. */
eha@2378
    11
 asm ("\n#include \"defs.h\"");
eha@2378
    12
 
eha@2378
    13
+asm ("\n#if defined __i686 && defined __ASSEMBLER__");
eha@2378
    14
+asm ("\n#undef __i686");
eha@2378
    15
+asm ("\n#define __i686 __i686");
eha@2378
    16
+asm ("\n#endif");
eha@2378
    17
+
eha@2378
    18
 /* The initial common code ends here. */
eha@2378
    19
 asm ("\n/*@HEADER_ENDS*/");
eha@2378
    20
 
eha@2378
    21
diff -urN glibc-2.12.1.orig/sysdeps/unix/sysv/linux/i386/sysdep.h glibc-2.12.1/sysdeps/unix/sysv/linux/i386/sysdep.h
eha@2378
    22
--- glibc-2.12.1.orig/sysdeps/unix/sysv/linux/i386/sysdep.h	2009-10-30 18:17:08.000000000 +0100
eha@2378
    23
+++ glibc-2.12.1/sysdeps/unix/sysv/linux/i386/sysdep.h	2010-12-30 11:36:19.858708534 +0100
eha@2378
    24
@@ -29,6 +29,10 @@
eha@2378
    25
 #include <dl-sysdep.h>
eha@2378
    26
 #include <tls.h>
eha@2378
    27
 
eha@2378
    28
+#if defined __i686 && defined __ASSEMBLER__
eha@2378
    29
+#undef __i686
eha@2378
    30
+#define __i686 __i686
eha@2378
    31
+#endif
eha@2378
    32
 
eha@2378
    33
 /* For Linux we can use the system call table in the header file
eha@2378
    34
 	/usr/include/asm/unistd.h