aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/powerpc/powerpc32/setjmp-common.S8
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp-common.S7
3 files changed, 17 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1b7587ec88..3ad8ff9495 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2005-12-18 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/powerpc/powerpc32/setjmp-common.S [IS_IN_rtld]: Avoid
+ call to __sigjmp_save.
+ * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise.
+
* stdlib/cxa_atexit.c: Use PTR_MANGLE on function pointer. Fill in
flavor field last and protect with memory barrier.
* stdlib/on_exit.c: Likewise.
diff --git a/sysdeps/powerpc/powerpc32/setjmp-common.S b/sysdeps/powerpc/powerpc32/setjmp-common.S
index ad7113f461..ae21284e03 100644
--- a/sysdeps/powerpc/powerpc32/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/setjmp-common.S
@@ -1,5 +1,6 @@
/* setjmp for PowerPC.
- Copyright (C) 1995-1997,1999-2001,2003,2004 Free Software Foundation, Inc.
+ Copyright (C) 1995-1997,1999-2001,2003,2004,2005
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -55,5 +56,10 @@ ENTRY (BP_SYM (__sigsetjmp))
stw r29,((JB_GPRS+15)*4)(3)
stw r30,((JB_GPRS+16)*4)(3)
stw r31,((JB_GPRS+17)*4)(3)
+#if defined NOT_IN_libc && defined IS_IN_rtld
+ li r3,0
+ blr
+#else
b BP_SYM (__sigjmp_save@local)
+#endif
END (BP_SYM (__sigsetjmp))
diff --git a/sysdeps/powerpc/powerpc64/setjmp-common.S b/sysdeps/powerpc/powerpc64/setjmp-common.S
index 0de07a82d3..c1926ecd68 100644
--- a/sysdeps/powerpc/powerpc64/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc64/setjmp-common.S
@@ -1,5 +1,5 @@
/* setjmp for PowerPC64.
- Copyright (C) 1995-2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1995-2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -177,5 +177,10 @@ L(aligned_save_vmx):
stvx 31,0,r6
L(no_vmx):
#endif
+#if defined NOT_IN_libc && defined IS_IN_rtld
+ li r3,0
+ blr
+#else
b JUMPTARGET (BP_SYM (__sigjmp_save))
+#endif
END (BP_SYM (__sigsetjmp))