patches/glibc/2.9/160-i386-x86_64-revert-clone-cfi.patch
author Remy Bohmer <linux@bohmer.net>
Sun Jul 11 22:23:34 2010 +0200 (2010-07-11)
changeset 2021 3e52a1510f87
parent 1201 c9967a6e3b25
permissions -rw-r--r--
debug/gdb: Fix compilation for Mingw hosts

GDB requires PDcurses instead of ncurses while running on Windows.
So, do not always compile ncurses in case GDB needs to build.

PDcurses is provided by an earlier build step and is not described in
this file.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
[yann.morin.1998@anciense.nib.fr: we already have a way to detect ncurses usage]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1201
     1
Original patch from: gentoo/src/patchsets/glibc/2.9/0070_all_glibc-i386-x86_64-revert-clone-cfi.patch
yann@1201
     2
yann@1201
     3
-= BEGIN original header =-
yann@1201
     4
revert cfi additions to clone on i386/x86_64 to workaround problems in
yann@1201
     5
gcc's unwinder code.  this is not a bug in glibc, it triggers problems
yann@1201
     6
elsewhere.  this cfi code does not gain us a whole lot anyways.
yann@1201
     7
yann@1201
     8
http://gcc.gnu.org/ml/gcc/2006-12/msg00293.html
yann@1201
     9
yann@1201
    10
-= END original header =-
yann@1201
    11
yann@1201
    12
diff -durN glibc-2_9.orig/sysdeps/unix/sysv/linux/i386/clone.S glibc-2_9/sysdeps/unix/sysv/linux/i386/clone.S
yann@1201
    13
--- glibc-2_9.orig/sysdeps/unix/sysv/linux/i386/clone.S	2006-12-04 00:12:36.000000000 +0100
yann@1201
    14
+++ glibc-2_9/sysdeps/unix/sysv/linux/i386/clone.S	2009-02-02 22:00:45.000000000 +0100
yann@1201
    15
@@ -120,9 +120,6 @@
yann@1201
    16
 	ret
yann@1201
    17
 
yann@1201
    18
 L(thread_start):
yann@1201
    19
-	cfi_startproc;
yann@1201
    20
-	/* Clearing frame pointer is insufficient, use CFI.  */
yann@1201
    21
-	cfi_undefined (eip);
yann@1201
    22
 	/* Note: %esi is zero.  */
yann@1201
    23
 	movl	%esi,%ebp	/* terminate the stack frame */
yann@1201
    24
 #ifdef RESET_PID
yann@1201
    25
@@ -155,7 +152,6 @@
yann@1201
    26
 	jmp	L(haspid)
yann@1201
    27
 	.previous
yann@1201
    28
 #endif
yann@1201
    29
-	cfi_endproc;
yann@1201
    30
 
yann@1201
    31
 	cfi_startproc
yann@1201
    32
 PSEUDO_END (BP_SYM (__clone))
yann@1201
    33
diff -durN glibc-2_9.orig/sysdeps/unix/sysv/linux/x86_64/clone.S glibc-2_9/sysdeps/unix/sysv/linux/x86_64/clone.S
yann@1201
    34
--- glibc-2_9.orig/sysdeps/unix/sysv/linux/x86_64/clone.S	2006-12-04 00:12:36.000000000 +0100
yann@1201
    35
+++ glibc-2_9/sysdeps/unix/sysv/linux/x86_64/clone.S	2009-02-02 22:00:45.000000000 +0100
yann@1201
    36
@@ -89,9 +89,6 @@
yann@1201
    37
 	ret
yann@1201
    38
 
yann@1201
    39
 L(thread_start):
yann@1201
    40
-	cfi_startproc;
yann@1201
    41
-	/* Clearing frame pointer is insufficient, use CFI.  */
yann@1201
    42
-	cfi_undefined (rip);
yann@1201
    43
 	/* Clear the frame pointer.  The ABI suggests this be done, to mark
yann@1201
    44
 	   the outermost frame obviously.  */
yann@1201
    45
 	xorl	%ebp, %ebp
yann@1201
    46
@@ -116,7 +113,6 @@
yann@1201
    47
 	/* Call exit with return value from function call. */
yann@1201
    48
 	movq	%rax, %rdi
yann@1201
    49
 	call	HIDDEN_JUMPTARGET (_exit)
yann@1201
    50
-	cfi_endproc;
yann@1201
    51
 
yann@1201
    52
 	cfi_startproc;
yann@1201
    53
 PSEUDO_END (BP_SYM (__clone))