patches/glibc/2.9/350-2.4-undefine-__i686.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Aug 30 16:54:30 2009 +0200 (2009-08-30)
changeset 1502 472cfde636a1
parent 1201 c9967a6e3b25
permissions -rw-r--r--
config: move the "build shared libraries" option to the OS menu

The "Build shared libraries" config option is dependant on the type of
"Target OS".

Moving this options to the "Target OS" sub-menu is also better in the user
perspective: he/she no longer needs to go back and forth to see if he/she
missed any option.
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__