patches/glibc/2.9/160-i386-x86_64-revert-clone-cfi.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:28:10 2011 +0200 (2011-08-02)
changeset 2590 b64cfb67944e
parent 1201 c9967a6e3b25
permissions -rw-r--r--
scripts/functions: svn retrieval first tries the mirror for tarballs

The svn download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via svn.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard svn retrieval will kick in.

Reported-by: ANDY KENNEDY <ANDY.KENNEDY@adtran.com>
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))