patches/glibc/2.14.1/910-asm-i686.patch
author Johannes Stezenbach <js@sig21.net>
Tue Oct 30 00:22:25 2012 +0000 (2012-10-30)
changeset 3097 5c67476c7342
permissions -rw-r--r--
scripts/functions: fix endless loop in debug-shell with IO redirection

CT_DEBUG_INTERACTIVE is disabled when stdin, stdout or
stderr are redirected, but the check is only done at
the start of the build and doesn't catch when individual
build commands use redirection. When stdin is redirected
it will cause the debug shell to exit immediately, causing
and endless loop. Thus, save the stdin/our/err file handles
and restore them before invoking the debug shell.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Message-Id: <20121030102225.GA8303@sig21.net>
Patchwork-Id: 195409
net147@3033
     1
Submitted By:            Matt Burgess <matthew_at_linuxfromscratch_dot_org>
net147@3033
     2
Date:                    2010-04-18
net147@3033
     3
Initial Package Version: 2.11.1
net147@3033
     4
Upstream Status:         Not Submitted
net147@3033
     5
Origin:                  http://www.eglibc.org/archives/patches/msg00073.html
net147@3033
     6
Description:             Fixes the following build problem with GCC-4.5.0:
net147@3033
     7
net147@3033
     8
/mnt/lfs/sources/libc-build/math/s_frexp.os.dt -MT /mnt/lfs/sources/libc-build/math/s_frexp.os
net147@3033
     9
./sysdeps/i386/fpu/s_frexp.S: Assembler messages:
net147@3033
    10
./sysdeps/i386/fpu/s_frexp.S:66: Error: invalid identifier for ".ifdef"
net147@3033
    11
./sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1'
net147@3033
    12
./sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1'
net147@3033
    13
./sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1'
net147@3033
    14
./sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `.'
net147@3033
    15
./sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1'
net147@3033
    16
./sysdeps/i386/fpu/s_frexp.S:66: Error: expected comma after name `' in .size directive
net147@3033
    17
./sysdeps/i386/fpu/s_frexp.S:66: Error: ".endif" without ".if"
net147@3033
    18
./sysdeps/i386/fpu/s_frexp.S:66: Error: junk `.get_pc_thunk.dx' after expression
net147@3033
    19
make[2]: *** [/mnt/lfs/sources/libc-build/math/s_frexp.os] Error 1
net147@3033
    20
net147@3033
    21
diff -Naur glibc-2.11.1.orig/nptl/sysdeps/pthread/pt-initfini.c glibc-2.11.1/nptl/sysdeps/pthread/pt-initfini.c
net147@3033
    22
--- glibc-2.11.1.orig/nptl/sysdeps/pthread/pt-initfini.c	2009-12-08 20:10:20.000000000 +0000
net147@3033
    23
+++ glibc-2.11.1/nptl/sysdeps/pthread/pt-initfini.c	2010-04-17 11:34:06.882681001 +0000
net147@3033
    24
@@ -45,6 +45,11 @@
net147@3033
    25
 /* Embed an #include to pull in the alignment and .end directives. */
net147@3033
    26
 asm ("\n#include \"defs.h\"");
net147@3033
    27
 
net147@3033
    28
+asm ("\n#if defined __i686 && defined __ASSEMBLER__");
net147@3033
    29
+asm ("\n#undef __i686");
net147@3033
    30
+asm ("\n#define __i686 __i686");
net147@3033
    31
+asm ("\n#endif");
net147@3033
    32
+
net147@3033
    33
 /* The initial common code ends here. */
net147@3033
    34
 asm ("\n/*@HEADER_ENDS*/");
net147@3033
    35
 
net147@3033
    36
diff -Naur glibc-2.11.1.orig/sysdeps/unix/sysv/linux/i386/sysdep.h glibc-2.11.1/sysdeps/unix/sysv/linux/i386/sysdep.h
net147@3033
    37
--- glibc-2.11.1.orig/sysdeps/unix/sysv/linux/i386/sysdep.h	2009-12-08 20:10:20.000000000 +0000
net147@3033
    38
+++ glibc-2.11.1/sysdeps/unix/sysv/linux/i386/sysdep.h	2010-04-17 11:34:06.882681001 +0000
net147@3033
    39
@@ -29,6 +29,10 @@
net147@3033
    40
 #include <dl-sysdep.h>
net147@3033
    41
 #include <tls.h>
net147@3033
    42
 
net147@3033
    43
+#if defined __i686 && defined __ASSEMBLER__
net147@3033
    44
+#undef __i686
net147@3033
    45
+#define __i686 __i686
net147@3033
    46
+#endif
net147@3033
    47
 
net147@3033
    48
 /* For Linux we can use the system call table in the header file
net147@3033
    49
 	/usr/include/asm/unistd.h
net147@3033
    50