From 367f7458b2c10dfcad6406b9d41fbb44f0904fd1 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Tue, 24 Jun 2008 16:24:09 +0000 Subject: [PATCH] New patches from Ioannis E. VENETIS to allow building more up-to-date Alpha x-compilers. Some patches are still missing, though. See: http://sourceware.org/ml/libc-help/2008-06/msg00061.html /trunk/patches/glibc/2.5.1/270-glibc-alpha-cfi.patch | 25 25 0 0 ++++++++++ /trunk/patches/glibc/2.5.1/280-glibc-alpha-sigsuspend.patch | 24 24 0 0 ++++++++++ /trunk/patches/glibc/2.5/270-glibc-alpha-cfi.patch | 25 25 0 0 ++++++++++ /trunk/patches/glibc/2.5/280-glibc-alpha-sigsuspend.patch | 24 24 0 0 ++++++++++ /trunk/patches/glibc/linuxthreads-2.3.6/270-glibc-linuxthreads-alpha-cfi.patch | 25 25 0 0 ++++++++++ /trunk/patches/gcc/4.2.0/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++ /trunk/patches/gcc/4.2.1/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++ /trunk/patches/gcc/4.3.0/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++ /trunk/patches/gcc/4.2.2/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++ /trunk/patches/gcc/4.3.1/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++ /trunk/patches/gcc/4.2.3/940-gcc-alpha-signal_h.patch | 17 17 0 0 +++++++ 11 files changed, 225 insertions(+) --- .../gcc/4.2.0/940-gcc-alpha-signal_h.patch | 17 +++++++++++++ .../gcc/4.2.1/940-gcc-alpha-signal_h.patch | 17 +++++++++++++ .../gcc/4.2.2/940-gcc-alpha-signal_h.patch | 17 +++++++++++++ .../gcc/4.2.3/940-gcc-alpha-signal_h.patch | 17 +++++++++++++ .../gcc/4.3.0/940-gcc-alpha-signal_h.patch | 17 +++++++++++++ .../gcc/4.3.1/940-gcc-alpha-signal_h.patch | 17 +++++++++++++ patches/glibc/2.5.1/270-glibc-alpha-cfi.patch | 25 +++++++++++++++++++ .../2.5.1/280-glibc-alpha-sigsuspend.patch | 24 ++++++++++++++++++ patches/glibc/2.5/270-glibc-alpha-cfi.patch | 25 +++++++++++++++++++ .../2.5/280-glibc-alpha-sigsuspend.patch | 24 ++++++++++++++++++ .../270-glibc-linuxthreads-alpha-cfi.patch | 25 +++++++++++++++++++ 11 files changed, 225 insertions(+) create mode 100644 patches/gcc/4.2.0/940-gcc-alpha-signal_h.patch create mode 100644 patches/gcc/4.2.1/940-gcc-alpha-signal_h.patch create mode 100644 patches/gcc/4.2.2/940-gcc-alpha-signal_h.patch create mode 100644 patches/gcc/4.2.3/940-gcc-alpha-signal_h.patch create mode 100644 patches/gcc/4.3.0/940-gcc-alpha-signal_h.patch create mode 100644 patches/gcc/4.3.1/940-gcc-alpha-signal_h.patch create mode 100644 patches/glibc/2.5.1/270-glibc-alpha-cfi.patch create mode 100644 patches/glibc/2.5.1/280-glibc-alpha-sigsuspend.patch create mode 100644 patches/glibc/2.5/270-glibc-alpha-cfi.patch create mode 100644 patches/glibc/2.5/280-glibc-alpha-sigsuspend.patch create mode 100644 patches/glibc/linuxthreads-2.3.6/270-glibc-linuxthreads-alpha-cfi.patch diff --git a/patches/gcc/4.2.0/940-gcc-alpha-signal_h.patch b/patches/gcc/4.2.0/940-gcc-alpha-signal_h.patch new file mode 100644 index 00000000..d7e1796d --- /dev/null +++ b/patches/gcc/4.2.0/940-gcc-alpha-signal_h.patch @@ -0,0 +1,17 @@ +--- gcc-4.2.1-stock/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 ++++ gcc-4.2.1/gcc/config/alpha/linux-unwind.h 2007-09-01 20:21:34.000000000 -0500 +@@ -29,6 +29,9 @@ Boston, MA 02110-1301, USA. */ + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + ++/* Don't use this if inhibit_libc is set ++ The build for this target will fail trying to include missing headers */ ++#ifndef inhibit_libc + #include + #include + +@@ -80,3 +83,4 @@ alpha_fallback_frame_state (struct _Unwi + fs->retaddr_column = 64; + return _URC_NO_REASON; + } ++#endif /* inhibit_libc */ diff --git a/patches/gcc/4.2.1/940-gcc-alpha-signal_h.patch b/patches/gcc/4.2.1/940-gcc-alpha-signal_h.patch new file mode 100644 index 00000000..d7e1796d --- /dev/null +++ b/patches/gcc/4.2.1/940-gcc-alpha-signal_h.patch @@ -0,0 +1,17 @@ +--- gcc-4.2.1-stock/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 ++++ gcc-4.2.1/gcc/config/alpha/linux-unwind.h 2007-09-01 20:21:34.000000000 -0500 +@@ -29,6 +29,9 @@ Boston, MA 02110-1301, USA. */ + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + ++/* Don't use this if inhibit_libc is set ++ The build for this target will fail trying to include missing headers */ ++#ifndef inhibit_libc + #include + #include + +@@ -80,3 +83,4 @@ alpha_fallback_frame_state (struct _Unwi + fs->retaddr_column = 64; + return _URC_NO_REASON; + } ++#endif /* inhibit_libc */ diff --git a/patches/gcc/4.2.2/940-gcc-alpha-signal_h.patch b/patches/gcc/4.2.2/940-gcc-alpha-signal_h.patch new file mode 100644 index 00000000..d7e1796d --- /dev/null +++ b/patches/gcc/4.2.2/940-gcc-alpha-signal_h.patch @@ -0,0 +1,17 @@ +--- gcc-4.2.1-stock/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 ++++ gcc-4.2.1/gcc/config/alpha/linux-unwind.h 2007-09-01 20:21:34.000000000 -0500 +@@ -29,6 +29,9 @@ Boston, MA 02110-1301, USA. */ + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + ++/* Don't use this if inhibit_libc is set ++ The build for this target will fail trying to include missing headers */ ++#ifndef inhibit_libc + #include + #include + +@@ -80,3 +83,4 @@ alpha_fallback_frame_state (struct _Unwi + fs->retaddr_column = 64; + return _URC_NO_REASON; + } ++#endif /* inhibit_libc */ diff --git a/patches/gcc/4.2.3/940-gcc-alpha-signal_h.patch b/patches/gcc/4.2.3/940-gcc-alpha-signal_h.patch new file mode 100644 index 00000000..d7e1796d --- /dev/null +++ b/patches/gcc/4.2.3/940-gcc-alpha-signal_h.patch @@ -0,0 +1,17 @@ +--- gcc-4.2.1-stock/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 ++++ gcc-4.2.1/gcc/config/alpha/linux-unwind.h 2007-09-01 20:21:34.000000000 -0500 +@@ -29,6 +29,9 @@ Boston, MA 02110-1301, USA. */ + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + ++/* Don't use this if inhibit_libc is set ++ The build for this target will fail trying to include missing headers */ ++#ifndef inhibit_libc + #include + #include + +@@ -80,3 +83,4 @@ alpha_fallback_frame_state (struct _Unwi + fs->retaddr_column = 64; + return _URC_NO_REASON; + } ++#endif /* inhibit_libc */ diff --git a/patches/gcc/4.3.0/940-gcc-alpha-signal_h.patch b/patches/gcc/4.3.0/940-gcc-alpha-signal_h.patch new file mode 100644 index 00000000..d7e1796d --- /dev/null +++ b/patches/gcc/4.3.0/940-gcc-alpha-signal_h.patch @@ -0,0 +1,17 @@ +--- gcc-4.2.1-stock/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 ++++ gcc-4.2.1/gcc/config/alpha/linux-unwind.h 2007-09-01 20:21:34.000000000 -0500 +@@ -29,6 +29,9 @@ Boston, MA 02110-1301, USA. */ + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + ++/* Don't use this if inhibit_libc is set ++ The build for this target will fail trying to include missing headers */ ++#ifndef inhibit_libc + #include + #include + +@@ -80,3 +83,4 @@ alpha_fallback_frame_state (struct _Unwi + fs->retaddr_column = 64; + return _URC_NO_REASON; + } ++#endif /* inhibit_libc */ diff --git a/patches/gcc/4.3.1/940-gcc-alpha-signal_h.patch b/patches/gcc/4.3.1/940-gcc-alpha-signal_h.patch new file mode 100644 index 00000000..d7e1796d --- /dev/null +++ b/patches/gcc/4.3.1/940-gcc-alpha-signal_h.patch @@ -0,0 +1,17 @@ +--- gcc-4.2.1-stock/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 ++++ gcc-4.2.1/gcc/config/alpha/linux-unwind.h 2007-09-01 20:21:34.000000000 -0500 +@@ -29,6 +29,9 @@ Boston, MA 02110-1301, USA. */ + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + ++/* Don't use this if inhibit_libc is set ++ The build for this target will fail trying to include missing headers */ ++#ifndef inhibit_libc + #include + #include + +@@ -80,3 +83,4 @@ alpha_fallback_frame_state (struct _Unwi + fs->retaddr_column = 64; + return _URC_NO_REASON; + } ++#endif /* inhibit_libc */ diff --git a/patches/glibc/2.5.1/270-glibc-alpha-cfi.patch b/patches/glibc/2.5.1/270-glibc-alpha-cfi.patch new file mode 100644 index 00000000..c1efd771 --- /dev/null +++ b/patches/glibc/2.5.1/270-glibc-alpha-cfi.patch @@ -0,0 +1,25 @@ +--- libc/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2006/10/29 21:48:06 1.6 ++++ libc/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2007/03/13 21:28:03 1.7 +@@ -55,6 +55,7 @@ + bne a3, SYSCALL_ERROR_LABEL; \ + __LABEL($pseudo_ret) \ + .subsection 2; \ ++ cfi_startproc; \ + __LABEL($pseudo_cancel) \ + subq sp, 64, sp; \ + cfi_def_cfa_offset(64); \ +@@ -90,12 +91,13 @@ + cfi_def_cfa_offset(0); \ + __LABEL($syscall_error) \ + SYSCALL_ERROR_HANDLER; \ ++ cfi_endproc; \ + .previous + + # undef PSEUDO_END + # define PSEUDO_END(sym) \ +- .subsection 2; \ + cfi_endproc; \ ++ .subsection 2; \ + .size sym, .-sym + + # define SAVE_ARGS_0 /* Nothing. */ diff --git a/patches/glibc/2.5.1/280-glibc-alpha-sigsuspend.patch b/patches/glibc/2.5.1/280-glibc-alpha-sigsuspend.patch new file mode 100644 index 00000000..daf1a5d0 --- /dev/null +++ b/patches/glibc/2.5.1/280-glibc-alpha-sigsuspend.patch @@ -0,0 +1,24 @@ +--- glibc-2.5/sysdeps/unix/sysv/linux/alpha/sigsuspend.S.orig 2006-10-22 22:17:01.000000000 +0200 ++++ glibc-2.5/sysdeps/unix/sysv/linux/alpha/sigsuspend.S 2006-10-22 22:18:05.000000000 +0200 +@@ -31,3 +31,21 @@ + libc_hidden_def (__sigsuspend) + weak_alias (__sigsuspend, sigsuspend) + strong_alias (__sigsuspend, __libc_sigsuspend) ++ ++#ifndef NO_CANCELLATION ++ .globl __sigsuspend_nocancel; ++ .align 4; ++ .type __sigsuspend_nocancel, @function; ++ .usepv __sigsuspend_nocancel, std; ++ cfi_startproc; ++__LABEL(__sigsuspend_nocancel) ++ ldgp gp, 0(pv); ++ PSEUDO_PROF; ++ PSEUDO_PREPARE_ARGS ++ lda v0, SYS_ify(sigsuspend); ++ call_pal PAL_callsys; ++ bne a3, SYSCALL_ERROR_LABEL; ++ ret; ++ cfi_endproc; ++ .size __sigsuspend_nocancel, .-__sigsuspend_nocancel ++#endif diff --git a/patches/glibc/2.5/270-glibc-alpha-cfi.patch b/patches/glibc/2.5/270-glibc-alpha-cfi.patch new file mode 100644 index 00000000..c1efd771 --- /dev/null +++ b/patches/glibc/2.5/270-glibc-alpha-cfi.patch @@ -0,0 +1,25 @@ +--- libc/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2006/10/29 21:48:06 1.6 ++++ libc/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2007/03/13 21:28:03 1.7 +@@ -55,6 +55,7 @@ + bne a3, SYSCALL_ERROR_LABEL; \ + __LABEL($pseudo_ret) \ + .subsection 2; \ ++ cfi_startproc; \ + __LABEL($pseudo_cancel) \ + subq sp, 64, sp; \ + cfi_def_cfa_offset(64); \ +@@ -90,12 +91,13 @@ + cfi_def_cfa_offset(0); \ + __LABEL($syscall_error) \ + SYSCALL_ERROR_HANDLER; \ ++ cfi_endproc; \ + .previous + + # undef PSEUDO_END + # define PSEUDO_END(sym) \ +- .subsection 2; \ + cfi_endproc; \ ++ .subsection 2; \ + .size sym, .-sym + + # define SAVE_ARGS_0 /* Nothing. */ diff --git a/patches/glibc/2.5/280-glibc-alpha-sigsuspend.patch b/patches/glibc/2.5/280-glibc-alpha-sigsuspend.patch new file mode 100644 index 00000000..daf1a5d0 --- /dev/null +++ b/patches/glibc/2.5/280-glibc-alpha-sigsuspend.patch @@ -0,0 +1,24 @@ +--- glibc-2.5/sysdeps/unix/sysv/linux/alpha/sigsuspend.S.orig 2006-10-22 22:17:01.000000000 +0200 ++++ glibc-2.5/sysdeps/unix/sysv/linux/alpha/sigsuspend.S 2006-10-22 22:18:05.000000000 +0200 +@@ -31,3 +31,21 @@ + libc_hidden_def (__sigsuspend) + weak_alias (__sigsuspend, sigsuspend) + strong_alias (__sigsuspend, __libc_sigsuspend) ++ ++#ifndef NO_CANCELLATION ++ .globl __sigsuspend_nocancel; ++ .align 4; ++ .type __sigsuspend_nocancel, @function; ++ .usepv __sigsuspend_nocancel, std; ++ cfi_startproc; ++__LABEL(__sigsuspend_nocancel) ++ ldgp gp, 0(pv); ++ PSEUDO_PROF; ++ PSEUDO_PREPARE_ARGS ++ lda v0, SYS_ify(sigsuspend); ++ call_pal PAL_callsys; ++ bne a3, SYSCALL_ERROR_LABEL; ++ ret; ++ cfi_endproc; ++ .size __sigsuspend_nocancel, .-__sigsuspend_nocancel ++#endif diff --git a/patches/glibc/linuxthreads-2.3.6/270-glibc-linuxthreads-alpha-cfi.patch b/patches/glibc/linuxthreads-2.3.6/270-glibc-linuxthreads-alpha-cfi.patch new file mode 100644 index 00000000..97c152e9 --- /dev/null +++ b/patches/glibc/linuxthreads-2.3.6/270-glibc-linuxthreads-alpha-cfi.patch @@ -0,0 +1,25 @@ +--- glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h.orig 2008-06-19 15:31:45.000000000 +0300 ++++ glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2008-06-19 15:36:10.000000000 +0300 +@@ -54,6 +54,7 @@ + bne a3, SYSCALL_ERROR_LABEL; \ + __LABEL($pseudo_ret) \ + .subsection 2; \ ++ cfi_startproc; \ + __LABEL($pseudo_cancel) \ + subq sp, 64, sp; \ + cfi_def_cfa_offset(64); \ +@@ -84,12 +85,13 @@ + cfi_def_cfa_offset(0); \ + __LABEL($syscall_error) \ + SYSCALL_ERROR_HANDLER; \ ++ cfi_endproc; \ + .previous + + # undef PSEUDO_END + # define PSEUDO_END(sym) \ +- .subsection 2; \ + cfi_endproc; \ ++ .subsection 2; \ + .size sym, .-sym + + # define SAVE_ARGS_0 /* Nothing. */