diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/setjmp-common.S | 8 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/setjmp-common.S | 7 |
3 files changed, 17 insertions, 2 deletions
@@ -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)) |