patches/glibc/linuxthreads-2.3.2/alpha_cfi2.patch
changeset 1 eeea35fbf182
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/glibc/linuxthreads-2.3.2/alpha_cfi2.patch	Sat Feb 24 11:00:05 2007 +0000
     1.3 @@ -0,0 +1,118 @@
     1.4 +See http://sources.redhat.com/ml/libc-alpha/2004-05/msg00110.html
     1.5 +
     1.6 +Both his patches pulled into this file
     1.7 +
     1.8 +Should fix
     1.9 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Assembler messages:
    1.10 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_startproc'
    1.11 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_def_cfa_offset'
    1.12 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: missing ')'
    1.13 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: syntax error
    1.14 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_remember_state'
    1.15 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_restore'
    1.16 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_def_cfa_offset'
    1.17 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_restore_state'
    1.18 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_restore'
    1.19 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: unknown opcode `cfi_def_cfa_offset'
    1.20 +../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:30: Error: unknown opcode `cfi_endproc'
    1.21 +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
    1.22 +
    1.23 +when building with binutils-2.15.90.0.3 and gcc-3.4.0
    1.24 +
    1.25 +--- glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h.orig	2004-05-13 00:33:54.000000000 -0400
    1.26 ++++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h	2004-05-13 00:34:19.000000000 -0400
    1.27 +@@ -42,7 +42,7 @@
    1.28 + 	.align 4;						\
    1.29 + 	.type name, @function;					\
    1.30 + 	.usepv name, std;					\
    1.31 +-	cfi_startproc;						\
    1.32 ++	.cfi_startproc;						\
    1.33 + __LABEL(name)							\
    1.34 + 	ldgp	gp, 0(pv);					\
    1.35 + 	PSEUDO_PROF;						\
    1.36 +@@ -56,9 +56,9 @@
    1.37 + 	.subsection 2;						\
    1.38 + __LABEL($pseudo_cancel)						\
    1.39 + 	subq	sp, 64, sp;					\
    1.40 +-	cfi_def_cfa_offset(64);					\
    1.41 ++	.cfi_def_cfa_offset(64);					\
    1.42 + 	stq	ra, 0(sp);					\
    1.43 +-	cfi_offset(ra, -64);					\
    1.44 ++	.cfi_offset ra, -64;					\
    1.45 + 	SAVE_ARGS_##args;					\
    1.46 + 	CENABLE;						\
    1.47 + 	LOAD_ARGS_##args;					\
    1.48 +@@ -70,18 +70,18 @@
    1.49 + 	ldq	ra, 0(sp);					\
    1.50 + 	ldq	v0, 8(sp);					\
    1.51 + 	addq	sp, 64, sp;					\
    1.52 +-	cfi_remember_state;					\
    1.53 +-	cfi_restore(ra);					\
    1.54 +-	cfi_def_cfa_offset(0);					\
    1.55 ++	.cfi_remember_state;					\
    1.56 ++	.cfi_restore(ra);					\
    1.57 ++	.cfi_def_cfa_offset(0);					\
    1.58 + 	ret;							\
    1.59 +-	cfi_restore_state;					\
    1.60 ++	.cfi_restore_state;					\
    1.61 + __LABEL($multi_error)						\
    1.62 + 	CDISABLE;						\
    1.63 + 	ldq	ra, 0(sp);					\
    1.64 + 	ldq	v0, 8(sp);					\
    1.65 + 	addq	sp, 64, sp;					\
    1.66 +-	cfi_restore(ra);					\
    1.67 +-	cfi_def_cfa_offset(0);					\
    1.68 ++	.cfi_restore(ra);					\
    1.69 ++	.cfi_def_cfa_offset(0);					\
    1.70 + __LABEL($syscall_error)						\
    1.71 + 	SYSCALL_ERROR_HANDLER;					\
    1.72 + 	.previous
    1.73 +@@ -89,7 +89,7 @@
    1.74 + # undef PSEUDO_END
    1.75 + # define PSEUDO_END(sym)					\
    1.76 + 	.subsection 2;						\
    1.77 +-	cfi_endproc;						\
    1.78 ++	.cfi_endproc;						\
    1.79 + 	.size sym, .-sym
    1.80 + 
    1.81 + # define SAVE_ARGS_0	/* Nothing.  */
    1.82 +
    1.83 +--- glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S.orig	2004-05-13 01:47:46.000000000 -0400
    1.84 ++++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S	2004-05-13 01:48:17.000000000 -0400
    1.85 +@@ -23,7 +23,7 @@
    1.86 + 	.globl	__vfork
    1.87 + 	.type	__vfork, @function
    1.88 + 	.usepv	__vfork, std
    1.89 +-	cfi_startproc
    1.90 ++	.cfi_startproc
    1.91 + __vfork:
    1.92 + 	ldgp	gp, 0(pv)
    1.93 + 	PSEUDO_PROF
    1.94 +@@ -47,22 +47,22 @@
    1.95 + 	   fork and vfork object files.  */
    1.96 + $do_fork:
    1.97 + 	subq	sp, 16, sp
    1.98 +-	cfi_adjust_cfa_offset(16)
    1.99 ++	.cfi_adjust_cfa_offset(16)
   1.100 + 	stq	ra, 0(sp)
   1.101 +-	cfi_offset(ra, -16)
   1.102 ++	.cfi_offset ra, -16
   1.103 + 	jsr	ra, HIDDEN_JUMPTARGET (__fork)
   1.104 + 	ldgp	gp, 0(ra)
   1.105 + 	ldq	ra, 0(sp)
   1.106 + 	addq	sp, 16, sp
   1.107 +-	cfi_restore(ra)
   1.108 +-	cfi_adjust_cfa_offset(-16)
   1.109 ++	.cfi_restore(ra)
   1.110 ++	.cfi_adjust_cfa_offset(-16)
   1.111 + 	ret
   1.112 + 
   1.113 + $syscall_error:
   1.114 + 	SYSCALL_ERROR_HANDLER
   1.115 + #endif
   1.116 + 
   1.117 +-	cfi_endproc
   1.118 ++	.cfi_endproc
   1.119 + 	.size __vfork, .-__vfork
   1.120 + 
   1.121 + libc_hidden_def (__vfork)