patches/glibc/linuxthreads-2.3.2/alpha_cfi2.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jul 28 21:34:41 2007 +0000 (2007-07-28)
changeset 301 2be7232a73ac
permissions -rw-r--r--
Bump version to 0.2.2.
     1 See http://sources.redhat.com/ml/libc-alpha/2004-05/msg00110.html
     2 
     3 Both his patches pulled into this file
     4 
     5 Should fix
     6 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Assembler messages:
     7 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_startproc'
     8 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_def_cfa_offset'
     9 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: missing ')'
    10 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: syntax error
    11 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_remember_state'
    12 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_restore'
    13 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_def_cfa_offset'
    14 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_restore_state'
    15 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_restore'
    16 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_def_cfa_offset'
    17 ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:30: Error: unknown opcode `cfi_endproc'
    18 make[2]: *** [/usr/src/crosstool/crosstool-0.28-rc14/build/alpha-linux/gcc-3.4.0-glibc-2.3.2/build-glibc/signal/sigsuspend.o] Error 1
    19 
    20 when building with binutils-2.15.90.0.3 and gcc-3.4.0
    21 
    22 --- glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h.orig	2004-05-13 00:33:54.000000000 -0400
    23 +++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h	2004-05-13 00:34:19.000000000 -0400
    24 @@ -42,7 +42,7 @@
    25  	.align 4;						\
    26  	.type name, @function;					\
    27  	.usepv name, std;					\
    28 -	cfi_startproc;						\
    29 +	.cfi_startproc;						\
    30  __LABEL(name)							\
    31  	ldgp	gp, 0(pv);					\
    32  	PSEUDO_PROF;						\
    33 @@ -56,9 +56,9 @@
    34  	.subsection 2;						\
    35  __LABEL($pseudo_cancel)						\
    36  	subq	sp, 64, sp;					\
    37 -	cfi_def_cfa_offset(64);					\
    38 +	.cfi_def_cfa_offset(64);					\
    39  	stq	ra, 0(sp);					\
    40 -	cfi_offset(ra, -64);					\
    41 +	.cfi_offset ra, -64;					\
    42  	SAVE_ARGS_##args;					\
    43  	CENABLE;						\
    44  	LOAD_ARGS_##args;					\
    45 @@ -70,18 +70,18 @@
    46  	ldq	ra, 0(sp);					\
    47  	ldq	v0, 8(sp);					\
    48  	addq	sp, 64, sp;					\
    49 -	cfi_remember_state;					\
    50 -	cfi_restore(ra);					\
    51 -	cfi_def_cfa_offset(0);					\
    52 +	.cfi_remember_state;					\
    53 +	.cfi_restore(ra);					\
    54 +	.cfi_def_cfa_offset(0);					\
    55  	ret;							\
    56 -	cfi_restore_state;					\
    57 +	.cfi_restore_state;					\
    58  __LABEL($multi_error)						\
    59  	CDISABLE;						\
    60  	ldq	ra, 0(sp);					\
    61  	ldq	v0, 8(sp);					\
    62  	addq	sp, 64, sp;					\
    63 -	cfi_restore(ra);					\
    64 -	cfi_def_cfa_offset(0);					\
    65 +	.cfi_restore(ra);					\
    66 +	.cfi_def_cfa_offset(0);					\
    67  __LABEL($syscall_error)						\
    68  	SYSCALL_ERROR_HANDLER;					\
    69  	.previous
    70 @@ -89,7 +89,7 @@
    71  # undef PSEUDO_END
    72  # define PSEUDO_END(sym)					\
    73  	.subsection 2;						\
    74 -	cfi_endproc;						\
    75 +	.cfi_endproc;						\
    76  	.size sym, .-sym
    77  
    78  # define SAVE_ARGS_0	/* Nothing.  */
    79 
    80 --- glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S.orig	2004-05-13 01:47:46.000000000 -0400
    81 +++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S	2004-05-13 01:48:17.000000000 -0400
    82 @@ -23,7 +23,7 @@
    83  	.globl	__vfork
    84  	.type	__vfork, @function
    85  	.usepv	__vfork, std
    86 -	cfi_startproc
    87 +	.cfi_startproc
    88  __vfork:
    89  	ldgp	gp, 0(pv)
    90  	PSEUDO_PROF
    91 @@ -47,22 +47,22 @@
    92  	   fork and vfork object files.  */
    93  $do_fork:
    94  	subq	sp, 16, sp
    95 -	cfi_adjust_cfa_offset(16)
    96 +	.cfi_adjust_cfa_offset(16)
    97  	stq	ra, 0(sp)
    98 -	cfi_offset(ra, -16)
    99 +	.cfi_offset ra, -16
   100  	jsr	ra, HIDDEN_JUMPTARGET (__fork)
   101  	ldgp	gp, 0(ra)
   102  	ldq	ra, 0(sp)
   103  	addq	sp, 16, sp
   104 -	cfi_restore(ra)
   105 -	cfi_adjust_cfa_offset(-16)
   106 +	.cfi_restore(ra)
   107 +	.cfi_adjust_cfa_offset(-16)
   108  	ret
   109  
   110  $syscall_error:
   111  	SYSCALL_ERROR_HANDLER
   112  #endif
   113  
   114 -	cfi_endproc
   115 +	.cfi_endproc
   116  	.size __vfork, .-__vfork
   117  
   118  libc_hidden_def (__vfork)