patches/glibc/2.9/160-i386-x86_64-revert-clone-cfi.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 04 00:04:23 2011 +0200 (2011-05-04)
changeset 2608 aa09a36c3d36
parent 1201 c9967a6e3b25
permissions -rw-r--r--
scripts/functions: test for decompressors before use

./configure does check for the presence of gz and bzip2, so we can
safely use them in the build scripts.

On the other hand, more recent formats (eg. XZ) are not yet widely
available, and we do not want, and can't, force the user to install
them as a pre-requisite.

So, build up a list of allowed tarball formats based on the available
decompressors. For no, this is a static list, but the upcoming XZ
support will conditionnaly add to this list.

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))