1.1 --- a/patches/glibc/linuxthreads-2.3.2/alpha_cfi1.patch Wed Aug 15 16:18:35 2007 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,136 +0,0 @@
1.4 -Retrieved with
1.5 -$ wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S.diff?r1=1.5&r2=1.6&cvsroot=glibc'
1.6 -$ wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h.diff?r1=1.3&r2=1.4&cvsroot=glibc'
1.7 -
1.8 -Might fix problem building with binutils-2.14.90.0.8/gcc-3.3.3 that was not
1.9 -present with binutils-2.13.90.0.18/gcc-3.3.2:
1.10 -
1.11 -../linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S: Assembler messages:
1.12 -../linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S:63: Warning: .ent
1.13 -directive without matching .end
1.14 -../linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S:63: Error: can't resolve
1.15 -`0' {.text section} - `L0^A' {.text section}
1.16 -make[2]: ***
1.17 -[/home/dkegel/wk/crosstool-0.26-pre3/build/alpha-unknown-linux-gnu/gcc-3.3-20040112-glibc-2.3.2/build-glibc/posix/vfork.o]
1.18 -Error 1
1.19 -make[2]: Leaving directory
1.20 -`/home/dkegel/wk/crosstool-0.26-pre3/build/alpha-unknown-linux-gnu/gcc-3.3-20040112-glibc-2.3.2/glibc-2.3.2/posix'
1.21 -make[1]: *** [posix/subdir_lib] Error 2
1.22 -make[1]: Leaving directory
1.23 -`/home/dkegel/wk/crosstool-0.26-pre3/build/alpha-unknown-linux-gnu/gcc-3.3-20040112-glibc-2.3.2/glibc-2.3.2'
1.24 -make: *** [all] Error 2
1.25 -
1.26 -See also alpha_cfi2.patch
1.27 -
1.28 -===================================================================
1.29 -RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S,v
1.30 -retrieving revision 1.5
1.31 -retrieving revision 1.6
1.32 -diff -u -r1.5 -r1.6
1.33 ---- libc/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S 2003/02/11 06:27:53 1.5
1.34 -+++ libc/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S 2003/06/06 05:51:03 1.6
1.35 -@@ -19,12 +19,13 @@
1.36 -
1.37 - #include <sysdep-cancel.h>
1.38 -
1.39 -- .globl __vfork
1.40 - .align 4
1.41 -- .ent __vfork,0
1.42 --__LABEL(__vfork)
1.43 -+ .globl __vfork
1.44 -+ .type __vfork, @function
1.45 -+ .usepv __vfork, std
1.46 -+ cfi_startproc
1.47 -+__vfork:
1.48 - ldgp gp, 0(pv)
1.49 -- .prologue 1
1.50 - PSEUDO_PROF
1.51 -
1.52 - #ifdef SHARED
1.53 -@@ -46,18 +47,24 @@
1.54 - fork and vfork object files. */
1.55 - $do_fork:
1.56 - subq sp, 16, sp
1.57 -+ cfi_adjust_cfa_offset(16)
1.58 - stq ra, 0(sp)
1.59 -+ cfi_offset(ra, -16)
1.60 - jsr ra, HIDDEN_JUMPTARGET (__fork)
1.61 - ldgp gp, 0(ra)
1.62 - ldq ra, 0(sp)
1.63 - addq sp, 16, sp
1.64 -+ cfi_restore(ra)
1.65 -+ cfi_adjust_cfa_offset(-16)
1.66 - ret
1.67 -
1.68 - $syscall_error:
1.69 - SYSCALL_ERROR_HANDLER
1.70 - #endif
1.71 -
1.72 --PSEUDO_END(__vfork)
1.73 -+ cfi_endproc
1.74 -+ .size __vfork, .-__vfork
1.75 -+
1.76 - libc_hidden_def (__vfork)
1.77 -
1.78 - weak_alias (__vfork, vfork)
1.79 -===================================================================
1.80 -RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h,v
1.81 -retrieving revision 1.3
1.82 -retrieving revision 1.4
1.83 -diff -u -r1.3 -r1.4
1.84 ---- libc/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2003/01/12 19:26:41 1.3
1.85 -+++ libc/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2003/06/06 05:51:03 1.4
1.86 -@@ -40,10 +40,11 @@
1.87 - # define PSEUDO(name, syscall_name, args) \
1.88 - .globl name; \
1.89 - .align 4; \
1.90 -- .ent name, 0; \
1.91 -+ .type name, @function; \
1.92 -+ .usepv name, std; \
1.93 -+ cfi_startproc; \
1.94 - __LABEL(name) \
1.95 - ldgp gp, 0(pv); \
1.96 -- .prologue 1; \
1.97 - PSEUDO_PROF; \
1.98 - PSEUDO_PREPARE_ARGS \
1.99 - SINGLE_THREAD_P(t0); \
1.100 -@@ -55,7 +56,9 @@
1.101 - .subsection 2; \
1.102 - __LABEL($pseudo_cancel) \
1.103 - subq sp, 64, sp; \
1.104 -+ cfi_def_cfa_offset(64); \
1.105 - stq ra, 0(sp); \
1.106 -+ cfi_offset(ra, -64); \
1.107 - SAVE_ARGS_##args; \
1.108 - CENABLE; \
1.109 - LOAD_ARGS_##args; \
1.110 -@@ -67,19 +70,27 @@
1.111 - ldq ra, 0(sp); \
1.112 - ldq v0, 8(sp); \
1.113 - addq sp, 64, sp; \
1.114 -+ cfi_remember_state; \
1.115 -+ cfi_restore(ra); \
1.116 -+ cfi_def_cfa_offset(0); \
1.117 - ret; \
1.118 -+ cfi_restore_state; \
1.119 - __LABEL($multi_error) \
1.120 - CDISABLE; \
1.121 - ldq ra, 0(sp); \
1.122 - ldq v0, 8(sp); \
1.123 - addq sp, 64, sp; \
1.124 -+ cfi_restore(ra); \
1.125 -+ cfi_def_cfa_offset(0); \
1.126 - __LABEL($syscall_error) \
1.127 - SYSCALL_ERROR_HANDLER; \
1.128 -- END(name); \
1.129 - .previous
1.130 -
1.131 - # undef PSEUDO_END
1.132 --# define PSEUDO_END(sym)
1.133 -+# define PSEUDO_END(sym) \
1.134 -+ .subsection 2; \
1.135 -+ cfi_endproc; \
1.136 -+ .size sym, .-sym
1.137 -
1.138 - # define SAVE_ARGS_0 /* Nothing. */
1.139 - # define SAVE_ARGS_1 SAVE_ARGS_0; stq a0, 8(sp)