summaryrefslogtreecommitdiff
path: root/glibc/glibc-2.3.2/glibc23-powerpc-sigcontext.patch
diff options
context:
space:
mode:
Diffstat (limited to 'glibc/glibc-2.3.2/glibc23-powerpc-sigcontext.patch')
-rw-r--r--glibc/glibc-2.3.2/glibc23-powerpc-sigcontext.patch326
1 files changed, 0 insertions, 326 deletions
diff --git a/glibc/glibc-2.3.2/glibc23-powerpc-sigcontext.patch b/glibc/glibc-2.3.2/glibc23-powerpc-sigcontext.patch
deleted file mode 100644
index b5deae40b6..0000000000
--- a/glibc/glibc-2.3.2/glibc23-powerpc-sigcontext.patch
+++ /dev/null
@@ -1,326 +0,0 @@
---- cvs/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions 2003-08-25 13:15:36.000000000 +1000
-+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions 2003-09-23 18:19:41.000000000 +1000
-@@ -22,5 +22,6 @@
- }
- GLIBC_2.3.3 {
- posix_fadvise64; posix_fallocate64;
-+ setcontext; getcontext; swapcontext; makecontext;
- }
- }
---- cvs/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S 2003-06-18 13:36:23.000000000 +1000
-+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S 2003-09-23 19:15:38.000000000 +1000
-@@ -18,12 +18,20 @@
- 02111-1307 USA. */
-
- #include <sysdep.h>
-+#include <shlib-compat.h>
-
- #define __ASSEMBLY__
- #include <asm/ptrace.h>
- #include "ucontext_i.h"
-
- ENTRY(__getcontext)
-+ /*
-+ * Since we are not attempting to save the altivec registers,
-+ * there is no need to get the register storage space
-+ * aligned on a 16-byte boundary.
-+ */
-+ addi r3,r3,_UC_REG_SPACE
-+ stw r3,_UC_REGS_PTR - _UC_REG_SPACE(r3)
- stw r0,_UC_GREGS+(PT_R0*4)(r3)
- stw r1,_UC_GREGS+(PT_R1*4)(r3)
- mflr r0
-@@ -112,7 +120,7 @@
- stfd fp31,_UC_FREGS+(31*8)(r3)
- stfd fp0,_UC_FREGS+(32*8)(r3)
-
-- addi r5,r3,_UC_SIGMASK
-+ addi r5,r3,_UC_SIGMASK - _UC_REG_SPACE
- li r4,0
- li r3,SIG_BLOCK
- bl JUMPTARGET(sigprocmask)
-@@ -123,4 +131,18 @@
- blr
- PSEUDO_END(__getcontext)
-
--weak_alias(__getcontext, getcontext)
-+versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_3)
-+
-+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
-+
-+#define _ERRNO_H 1
-+#include <bits/errno.h>
-+
-+ENTRY (__getcontext_stub)
-+ li r3,ENOSYS
-+ b JUMPTARGET(__syscall_error)
-+ END (__getcontext_stub)
-+
-+compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1)
-+
-+#endif
---- cvs/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S 2003-06-18 13:36:38.000000000 +1000
-+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S 2003-09-23 19:15:48.000000000 +1000
-@@ -18,6 +18,7 @@
- 02111-1307 USA. */
-
- #include <sysdep.h>
-+#include <shlib-compat.h>
-
- #define __ASSEMBLY__
- #include <asm/ptrace.h>
-@@ -25,22 +26,24 @@
-
- ENTRY(__makecontext)
- /* Set up the first 7 args to the function in its registers */
-- stw r6,_UC_GREGS+(PT_R3*4)(r3)
-- stw r7,_UC_GREGS+(PT_R4*4)(r3)
-- stw r8,_UC_GREGS+(PT_R5*4)(r3)
-- stw r9,_UC_GREGS+(PT_R6*4)(r3)
-- stw r10,_UC_GREGS+(PT_R7*4)(r3)
-+ addi r11,r3,_UC_REG_SPACE
-+ stw r11,_UC_REGS_PTR(r3)
-+ stw r6,_UC_GREGS+(PT_R3*4)(r11)
-+ stw r7,_UC_GREGS+(PT_R4*4)(r11)
-+ stw r8,_UC_GREGS+(PT_R5*4)(r11)
-+ stw r9,_UC_GREGS+(PT_R6*4)(r11)
-+ stw r10,_UC_GREGS+(PT_R7*4)(r11)
- lwz r8,8(r1)
- lwz r9,12(r1)
-- stw r8,_UC_GREGS+(PT_R8*4)(r3)
-- stw r9,_UC_GREGS+(PT_R9*4)(r3)
-+ stw r8,_UC_GREGS+(PT_R8*4)(r11)
-+ stw r9,_UC_GREGS+(PT_R9*4)(r11)
-
- /* Set the NIP to the start of the function */
-- stw r4,_UC_GREGS+(PT_NIP*4)(r3)
-+ stw r4,_UC_GREGS+(PT_NIP*4)(r11)
-
- /* Set the function's r31 to ucp->uc_link for the exitcode below. */
- lwz r7,_UC_LINK(r3)
-- stw r7,_UC_GREGS+(PT_R31*4)(r3)
-+ stw r7,_UC_GREGS+(PT_R31*4)(r11)
-
- /* Set the function's LR to point to the exitcode below. */
- #ifdef PIC
-@@ -53,7 +56,7 @@
- lis r6,L(exitcode)@ha
- addi r6,r6,L(exitcode)@l
- #endif
-- stw r6,_UC_GREGS+(PT_LNK*4)(r3)
-+ stw r6,_UC_GREGS+(PT_LNK*4)(r11)
-
- /*
- * Set up the stack frame for the function.
-@@ -71,7 +74,7 @@
- cmpwi r5,8
- blt 2f /* less than 8 args is easy */
- lwz r10,16(r1)
-- stw r10,_UC_GREGS+(PT_R10*4)(r3)
-+ stw r10,_UC_GREGS+(PT_R10*4)(r11)
- beq 2f /* if exactly 8 args */
- subi r9,r5,3
- subi r5,r5,8
-@@ -83,7 +86,7 @@
- 3: lwzu r10,4(r6)
- stwu r10,4(r8)
- bdnz 3b
--2: stw r7,_UC_GREGS+(PT_R1*4)(r3)
-+2: stw r7,_UC_GREGS+(PT_R1*4)(r11)
- li r6,0
- stw r6,0(r7)
-
-@@ -102,4 +105,19 @@
- b 4b
-
- END(__makecontext)
--weak_alias(__makecontext, makecontext)
-+
-+versioned_symbol (libc, __makecontext, makecontext, GLIBC_2_3_3)
-+
-+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
-+
-+#define _ERRNO_H 1
-+#include <bits/errno.h>
-+
-+ENTRY (__makecontext_stub)
-+ li r3,ENOSYS
-+ b JUMPTARGET(__syscall_error)
-+ END (__makecontext_stub)
-+
-+compat_symbol (libc, __makecontext_stub, makecontext, GLIBC_2_1)
-+
-+#endif
---- cvs/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S 2003-06-18 13:36:57.000000000 +1000
-+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S 2003-09-23 17:01:40.000000000 +1000
-@@ -18,6 +18,7 @@
- 02111-1307 USA. */
-
- #include <sysdep.h>
-+#include <shlib-compat.h>
-
- #define __ASSEMBLY__
- #include <asm/ptrace.h>
-@@ -28,7 +29,7 @@
- stwu r1,-16(r1)
- stw r0,20(r1)
- stw r31,12(r1)
-- mr r31,r3
-+ lwz r31,_UC_REGS_PTR(r3)
-
- /*
- * If this ucontext refers to the point where we were interrupted
-@@ -144,6 +145,20 @@
- sc
- /* NOTREACHED */
-
--PSEUDO_END(__setcontext)
-+PSEUDO_END (__setcontext)
-
--weak_alias(__setcontext, setcontext)
-+versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_3)
-+
-+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_3)
-+
-+#define _ERRNO_H 1
-+#include <bits/errno.h>
-+
-+ENTRY (__setcontext_stub)
-+ li r3,ENOSYS
-+ b JUMPTARGET(__syscall_error)
-+ END (__setcontext_stub)
-+
-+compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_0)
-+
-+#endif
---- cvs/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S 2003-06-18 13:37:19.000000000 +1000
-+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S 2003-09-23 19:15:56.000000000 +1000
-@@ -18,6 +18,7 @@
- 02111-1307 USA. */
-
- #include <sysdep.h>
-+#include <shlib-compat.h>
-
- #define __ASSEMBLY__
- #include <asm/ptrace.h>
-@@ -25,6 +26,8 @@
-
- ENTRY(__swapcontext)
- /* Save the current context */
-+ addi r3,r3,_UC_REG_SPACE
-+ stw r3,_UC_REGS_PTR - _UC_REG_SPACE(r3)
- stw r0,_UC_GREGS+(PT_R0*4)(r3)
- stw r1,_UC_GREGS+(PT_R1*4)(r3)
- mflr r0
-@@ -115,7 +118,7 @@
- stfd fp31,_UC_FREGS+(31*8)(r3)
- stfd fp0,_UC_FREGS+(32*8)(r3)
-
-- addi r5,r3,_UC_SIGMASK
-+ addi r5,r3,_UC_SIGMASK - _UC_REG_SPACE
- addi r4,r4,_UC_SIGMASK
- li r3,SIG_SETMASK
- bl JUMPTARGET(sigprocmask)
-@@ -133,6 +136,8 @@
- * r0, xer, ctr. We don't restore r2 since it will be used as
- * the TLS pointer.
- */
-+ mr r4,r31
-+ lwz r31,_UC_REGS_PTR(r31)
- lwz r0,_UC_GREGS+(PT_MSR*4)(r31)
- cmpwi r0,0
- bne L(do_sigret)
-@@ -223,11 +228,25 @@
- blr
-
- L(do_sigret):
-- addi r1,r31,-0xd0
-+ addi r1,r4,-0xd0
- li r0,SYS_ify(rt_sigreturn)
- sc
- /* NOTREACHED */
-
- PSEUDO_END(__swapcontext)
-
--weak_alias(__swapcontext, swapcontext)
-+versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_3)
-+
-+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
-+
-+#define _ERRNO_H 1
-+#include <bits/errno.h>
-+
-+ENTRY (__swapcontext_stub)
-+ li r3,ENOSYS
-+ b JUMPTARGET(__syscall_error)
-+ END (__swapcontext_stub)
-+
-+compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1)
-+
-+#endif
---- cvs/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h 2003-06-18 13:37:33.000000000 +1000
-+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h 2003-09-11 16:48:08.000000000 +1000
-@@ -24,7 +24,11 @@
- #define _UC_LINK 4
- #define _UC_STACK_SP 8
- #define _UC_STACK_SIZE 16
--#define _UC_SIGMASK 64
--#define _UC_GREGS 192
--#define _UC_FREGS 384
--#define _UC_VREGS 656
-+#define _UC_REGS_PTR 48
-+#define _UC_SIGMASK 52
-+#define _UC_REG_SPACE 180
-+
-+/* offsets within mcontext_t */
-+#define _UC_GREGS 0
-+#define _UC_FREGS 192
-+#define _UC_VREGS 464
---- cvs/libc/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h 2003-07-04 10:12:48.000000000 +1000
-+++ libc/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h 2003-09-11 16:31:52.000000000 +1000
-@@ -74,14 +74,40 @@
- struct ucontext *uc_link;
- stack_t uc_stack;
- #if __WORDSIZE == 32
-- /* These fields are for backwards compatibility. */
-+ /*
-+ * These fields are set up this way to maximize source and
-+ * binary compatibility with code written for the old
-+ * ucontext_t definition, which didn't include space for the
-+ * registers.
-+ *
-+ * Different versions of the kernel have stored the registers on
-+ * signal delivery at different offsets from the ucontext struct.
-+ * Programs should thus use the uc_mcontext.uc_regs pointer to
-+ * find where the registers are actually stored. The registers
-+ * will be stored within the ucontext_t struct but not necessarily
-+ * at a fixed address. As a side-effect, this lets us achieve
-+ * 16-byte alignment for the register storage space if the
-+ * Altivec registers are to be saved, without requiring 16-byte
-+ * alignment on the whole ucontext_t.
-+ *
-+ * The uc_mcontext.regs field is included for source compatibility
-+ * with programs written against the older ucontext_t definition,
-+ * and its name should therefore not change. The uc_pad field
-+ * is for binary compatibility with programs compiled against the
-+ * old ucontext_t; it ensures that uc_mcontext.regs and uc_sigmask
-+ * are at the same offset as previously.
-+ */
- int uc_pad[7];
-- mcontext_t *uc_regs;
-- unsigned int uc_oldsigmask[2];
-- int uc_pad2;
--#endif
-+ union uc_regs_ptr {
-+ struct pt_regs *regs;
-+ mcontext_t *uc_regs;
-+ } uc_mcontext;
-+ sigset_t uc_sigmask;
-+ char uc_reg_space[sizeof(mcontext_t) + 12]; /* last for extensibility */
-+#else /* 64-bit */
- sigset_t uc_sigmask;
- mcontext_t uc_mcontext; /* last for extensibility */
-+#endif
- } ucontext_t;
-
- #endif /* sys/ucontext.h */