patches/glibc/2.9/350-2.4-undefine-__i686.patch
author Remy Bohmer <linux@bohmer.net>
Thu May 27 23:18:19 2010 +0200 (2010-05-27)
changeset 2060 51e4597b07fc
parent 1201 c9967a6e3b25
permissions -rw-r--r--
scripts: add option to strip all toolchain executables

To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
yann@1201
     1
Original patch from: gentoo/src/patchsets/glibc/2.9/1130_all_glibc-2.4-undefine-__i686.patch
yann@1201
     2
yann@1201
     3
-= BEGIN original header =-
yann@1201
     4
If gcc is configured to generate i686 code or better by default (like 
yann@1201
     5
when using the --with-arch=pentium3 configure option), then the __i686
yann@1201
     6
macro will always be defined automatically and thus screw up the
yann@1201
     7
compilation of some .S files.
yann@1201
     8
http://bugs.gentoo.org/131108
yann@1201
     9
http://sourceware.org/ml/libc-alpha/2006-04/msg00090.html
yann@1201
    10
yann@1201
    11
2006-04-25  Mike Frysinger  <vapier@gentoo.org>
yann@1201
    12
yann@1201
    13
	* sysdeps/i386/sysdep.h (__i686): Undefine.
yann@1201
    14
yann@1201
    15
-= END original header =-
yann@1201
    16
yann@1201
    17
diff -durN glibc-2_9.orig/nptl/sysdeps/pthread/pt-initfini.c glibc-2_9/nptl/sysdeps/pthread/pt-initfini.c
yann@1201
    18
--- glibc-2_9.orig/nptl/sysdeps/pthread/pt-initfini.c	2007-06-17 20:02:01.000000000 +0200
yann@1201
    19
+++ glibc-2_9/nptl/sysdeps/pthread/pt-initfini.c	2009-02-02 22:01:09.000000000 +0100
yann@1201
    20
@@ -45,6 +45,9 @@
yann@1201
    21
 /* Embed an #include to pull in the alignment and .end directives. */
yann@1201
    22
 asm ("\n#include \"defs.h\"");
yann@1201
    23
 
yann@1201
    24
+/* Embed an #include to pull in asm settings. */
yann@1201
    25
+asm ("\n#ifdef __i686__\n#include <sysdep.h>\n#endif");
yann@1201
    26
+
yann@1201
    27
 /* The initial common code ends here. */
yann@1201
    28
 asm ("\n/*@HEADER_ENDS*/");
yann@1201
    29
 
yann@1201
    30
diff -durN glibc-2_9.orig/sysdeps/i386/sysdep.h glibc-2_9/sysdeps/i386/sysdep.h
yann@1201
    31
--- glibc-2_9.orig/sysdeps/i386/sysdep.h	2006-10-28 08:44:03.000000000 +0200
yann@1201
    32
+++ glibc-2_9/sysdeps/i386/sysdep.h	2009-02-02 22:01:09.000000000 +0100
yann@1201
    33
@@ -18,6 +18,14 @@
yann@1201
    34
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
yann@1201
    35
    02111-1307 USA.  */
yann@1201
    36
 
yann@1201
    37
+/*
yann@1201
    38
+ * When building for i686 targets or better, gcc automatically defines
yann@1201
    39
+ * '__i686' to '1' for us which causes trouble when using section names
yann@1201
    40
+ * like '__i686.get_pc_thunk.reg'.  Since we check for __i686__ in the
yann@1201
    41
+ * code, killing '__i686' shouldn't be a problem.
yann@1201
    42
+ */
yann@1201
    43
+#undef __i686
yann@1201
    44
+
yann@1201
    45
 #include <sysdeps/generic/sysdep.h>
yann@1201
    46
 
yann@1201
    47
 #ifdef	__ASSEMBLER__