patches/glibc/2.9/160-i386-x86_64-revert-clone-cfi.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Aug 30 16:54:30 2009 +0200 (2009-08-30)
changeset 1502 472cfde636a1
parent 1201 c9967a6e3b25
permissions -rw-r--r--
config: move the "build shared libraries" option to the OS menu

The "Build shared libraries" config option is dependant on the type of
"Target OS".

Moving this options to the "Target OS" sub-menu is also better in the user
perspective: he/she no longer needs to go back and forth to see if he/she
missed any option.
     1 Original patch from: gentoo/src/patchsets/glibc/2.9/0070_all_glibc-i386-x86_64-revert-clone-cfi.patch
     2 
     3 -= BEGIN original header =-
     4 revert cfi additions to clone on i386/x86_64 to workaround problems in
     5 gcc's unwinder code.  this is not a bug in glibc, it triggers problems
     6 elsewhere.  this cfi code does not gain us a whole lot anyways.
     7 
     8 http://gcc.gnu.org/ml/gcc/2006-12/msg00293.html
     9 
    10 -= END original header =-
    11 
    12 diff -durN glibc-2_9.orig/sysdeps/unix/sysv/linux/i386/clone.S glibc-2_9/sysdeps/unix/sysv/linux/i386/clone.S
    13 --- glibc-2_9.orig/sysdeps/unix/sysv/linux/i386/clone.S	2006-12-04 00:12:36.000000000 +0100
    14 +++ glibc-2_9/sysdeps/unix/sysv/linux/i386/clone.S	2009-02-02 22:00:45.000000000 +0100
    15 @@ -120,9 +120,6 @@
    16  	ret
    17  
    18  L(thread_start):
    19 -	cfi_startproc;
    20 -	/* Clearing frame pointer is insufficient, use CFI.  */
    21 -	cfi_undefined (eip);
    22  	/* Note: %esi is zero.  */
    23  	movl	%esi,%ebp	/* terminate the stack frame */
    24  #ifdef RESET_PID
    25 @@ -155,7 +152,6 @@
    26  	jmp	L(haspid)
    27  	.previous
    28  #endif
    29 -	cfi_endproc;
    30  
    31  	cfi_startproc
    32  PSEUDO_END (BP_SYM (__clone))
    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
    34 --- glibc-2_9.orig/sysdeps/unix/sysv/linux/x86_64/clone.S	2006-12-04 00:12:36.000000000 +0100
    35 +++ glibc-2_9/sysdeps/unix/sysv/linux/x86_64/clone.S	2009-02-02 22:00:45.000000000 +0100
    36 @@ -89,9 +89,6 @@
    37  	ret
    38  
    39  L(thread_start):
    40 -	cfi_startproc;
    41 -	/* Clearing frame pointer is insufficient, use CFI.  */
    42 -	cfi_undefined (rip);
    43  	/* Clear the frame pointer.  The ABI suggests this be done, to mark
    44  	   the outermost frame obviously.  */
    45  	xorl	%ebp, %ebp
    46 @@ -116,7 +113,6 @@
    47  	/* Call exit with return value from function call. */
    48  	movq	%rax, %rdi
    49  	call	HIDDEN_JUMPTARGET (_exit)
    50 -	cfi_endproc;
    51  
    52  	cfi_startproc;
    53  PSEUDO_END (BP_SYM (__clone))