patches/glibc/2.9/350-2.4-undefine-__i686.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jan 17 23:06:02 2010 +0100 (2010-01-17)
changeset 1740 c57458bb354d
parent 1201 c9967a6e3b25
permissions -rw-r--r--
configure: do not require hg when configuring in an hg clone

When configuring in an hg clone, we need hg to compute the version string.
It can happen that users do not have Mercurial (eg. if they got a snapshot
rather that they did a full clone). In this case, we can still run, of
course, so simply fill the version string with a sufficiently explicit
value, that does not require hg. The date is a good candidate.
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__