This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] PowerPC: Add systemtap static probe points in setjmp/longjmp
- From: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- To: "GNU C. Library" <libc-alpha at sourceware dot org>
- Date: Mon, 11 Nov 2013 15:38:18 -0200
- Subject: Re: [PATCH] PowerPC: Add systemtap static probe points in setjmp/longjmp
- Authentication-results: sourceware.org; auth=none
- References: <5272EACD dot 50308 at linux dot vnet dot ibm dot com>
Ping.
On 31-10-2013 21:42, Adhemerval Zanella wrote:
> Hi all,
>
> This patch add static probes for setjmp/longjmp in the way gdb expects. Along with
> another fix (discussed at https://sourceware.org/ml/gdb/2013-10/msg00191.html) this
> fixes the gdb.base/longjmp.exp gdb testcases.
>
> I have to change the symbol_name and use macros to change them to avoid change the
> probe names and ending up adding more logic on GCC (since with the expected name
> GDB work seamlessly). They symbols name will be the same as before.
>
> Tested on PPC64, PPC32, and PPC32 soft-fp.
>
> ---
>
> 2013-10-31 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
>
> * sysdeps/powerpc/powerpc32/__longjmp-common.S: Add "longjmp" and
> "longjmp_target" static probes.
> (__longjmp): Rename to __longjmp_symbol.
> * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Likewise.
> * sysdeps/powerpc/powerpc32/__longjmp.S: Define __longjmp_symbol based
> on which longjmp to generate.
> * sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise.
> * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Add "setjmp" static
> probe.
> (__sigsetjmp): Rename to __sigsetjmp_symbol.
> (__sigjmp_save): Rename to __sigjmp_save_symbol.
> * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
> * sysdeps/powerpc/powerpc32/fpu/setjmp.S: Define __sigsetjmp_symbol
> and __sigjmp_save_symbol based on which sigsetjmp to generated.
> * sysdeps/powerpc/powerpc32/setjmp.S: Likewise
> * sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S: Define
> __longjmp_symbol based on which __longjmp to generate.
> * sysdeps/powerpc/powerpc64/setjmp-common.S: Add "setjmp" static
> probe.
> (setjmp): Rename to setjmp_symbol.
> (__sigsetjmp): Rename to __sigsetjmp_symbol.
> (_setjmp): Rename to _setjmp_symbol.
> (__sigsetjmp): Rename to __sigsetjmp_symbol.
> * sysdeps/powerpc/powerpc64/setjmp.S: Define setjmp_symbol,
> _setjmp_symbol, __sigsetjmp_symbol, and __sigjmp_save_symbol based on
> which setjmp to generate.
> * sysdeps/powerpc/powerpc64/__longjmp-common.S: Add "longjmp" and
> "longjmp_target" static probes.
>
> --
>
> diff --git a/sysdeps/powerpc/powerpc32/__longjmp-common.S b/sysdeps/powerpc/powerpc32/__longjmp-common.S
> index df1d519..08eff37 100644
> --- a/sysdeps/powerpc/powerpc32/__longjmp-common.S
> +++ b/sysdeps/powerpc/powerpc32/__longjmp-common.S
> @@ -17,6 +17,7 @@
> <http://www.gnu.org/licenses/>. */
>
> #include <sysdep.h>
> +#include <stap-probe.h>
> #define _ASM
> #ifdef __NO_VMX__
> # include <novmxsetjmp.h>
> @@ -30,7 +31,7 @@
> # define LOAD_GP(N) lwz r##N,((JB_GPRS+(N)-14)*4)(r3)
> #endif
>
> -ENTRY (__longjmp)
> +ENTRY (__longjmp_symbol)
>
> #if defined PTR_DEMANGLE || defined CHECK_SP
> lwz r24,(JB_GPR1*4)(r3)
> @@ -58,20 +59,22 @@ ENTRY (__longjmp)
> # endif
> PTR_DEMANGLE2 (r0, r25)
> #endif
> + LIBC_PROBE (longjmp, 3, 4@3, -4@4, 4@0)
> mtlr r0
> LOAD_GP (21)
> LOAD_GP (22)
> - lwz r0,(JB_CR*4)(r3)
> + lwz r5,(JB_CR*4)(r3)
> LOAD_GP (23)
> LOAD_GP (24)
> LOAD_GP (25)
> - mtcrf 0xFF,r0
> + mtcrf 0xFF,r5
> LOAD_GP (26)
> LOAD_GP (27)
> LOAD_GP (28)
> LOAD_GP (29)
> LOAD_GP (30)
> LOAD_GP (31)
> + LIBC_PROBE (longjmp_target, 3, 8@3, -4@4, 8@0)
> mr r3,r4
> blr
> -END (__longjmp)
> +END (__longjmp_symbol)
> diff --git a/sysdeps/powerpc/powerpc32/__longjmp.S b/sysdeps/powerpc/powerpc32/__longjmp.S
> index 3ceeea7..8456cb5 100644
> --- a/sysdeps/powerpc/powerpc32/__longjmp.S
> +++ b/sysdeps/powerpc/powerpc32/__longjmp.S
> @@ -21,18 +21,19 @@
>
> #if defined NOT_IN_libc
> /* Build a non-versioned object for rtld-*. */
> +# define __longjmp_symbol __longjmp
> # include "__longjmp-common.S"
>
> #else /* !NOT_IN_libc */
> strong_alias (__vmx__longjmp, __longjmp);
> -# define __longjmp __vmx__longjmp
> +# define __longjmp_symbol __vmx__longjmp
> # include "__longjmp-common.S"
>
> # if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
> # define __NO_VMX__
> # undef JB_SIZE
> -# undef __longjmp
> -# define __longjmp __novmx__longjmp
> +# undef __longjmp_symbol
> +# define __longjmp_symbol __novmx__longjmp
> # include "__longjmp-common.S"
> # endif
> #endif /* !NOT_IN_libc */
> diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
> index d02aa57..4fcaeb9 100644
> --- a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
> +++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
> @@ -17,6 +17,7 @@
> <http://www.gnu.org/licenses/>. */
>
> #include <sysdep.h>
> +#include <stap-probe.h>
> #define _ASM
> #ifdef __NO_VMX__
> # include <novmxsetjmp.h>
> @@ -25,7 +26,7 @@
> #endif
>
> .machine "altivec"
> -ENTRY (__longjmp)
> +ENTRY (__longjmp_symbol)
> #ifndef __NO_VMX__
> # ifdef PIC
> mflr r6
> @@ -143,19 +144,20 @@ L(no_vmx):
> # endif
> PTR_DEMANGLE2 (r0, r25)
> #endif
> + LIBC_PROBE (longjmp, 3, 4@3, -4@4, 4@0)
> mtlr r0
> lwz r21,((JB_GPRS+7)*4)(r3)
> lfd fp21,((JB_FPRS+7*2)*4)(r3)
> lwz r22,((JB_GPRS+8)*4)(r3)
> lfd fp22,((JB_FPRS+8*2)*4)(r3)
> - lwz r0,(JB_CR*4)(r3)
> + lwz r5,(JB_CR*4)(r3)
> lwz r23,((JB_GPRS+9)*4)(r3)
> lfd fp23,((JB_FPRS+9*2)*4)(r3)
> lwz r24,((JB_GPRS+10)*4)(r3)
> lfd fp24,((JB_FPRS+10*2)*4)(r3)
> lwz r25,((JB_GPRS+11)*4)(r3)
> lfd fp25,((JB_FPRS+11*2)*4)(r3)
> - mtcrf 0xFF,r0
> + mtcrf 0xFF,r5
> lwz r26,((JB_GPRS+12)*4)(r3)
> lfd fp26,((JB_FPRS+12*2)*4)(r3)
> lwz r27,((JB_GPRS+13)*4)(r3)
> @@ -168,6 +170,7 @@ L(no_vmx):
> lfd fp30,((JB_FPRS+16*2)*4)(r3)
> lwz r31,((JB_GPRS+17)*4)(r3)
> lfd fp31,((JB_FPRS+17*2)*4)(r3)
> + LIBC_PROBE (longjmp_target, 3, 8@3, -4@4, 8@0)
> mr r3,r4
> blr
> -END (__longjmp)
> +END (__longjmp_symbol)
> diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
> index 27166c4..cbd42be 100644
> --- a/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
> +++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
> @@ -22,20 +22,21 @@
>
> #if defined NOT_IN_libc
> /* Build a non-versioned object for rtld-*. */
> +# define __longjmp_symbol __longjmp
> # include "__longjmp-common.S"
>
> #else /* !NOT_IN_libc */
> /* Build a versioned object for libc. */
> versioned_symbol (libc, __vmx__longjmp, __longjmp, GLIBC_2_3_4);
> -# define __longjmp __vmx__longjmp
> +# define __longjmp_symbol __vmx__longjmp
> # include "__longjmp-common.S"
>
> # if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
> # define __NO_VMX__
> # undef JB_SIZE
> compat_symbol (libc, __novmx__longjmp, __longjmp, GLIBC_2_0);
> -# undef __longjmp
> -# define __longjmp __novmx__longjmp
> +# undef __longjmp_symbol
> +# define __longjmp_symbol __novmx__longjmp
> # include "__longjmp-common.S"
> # endif
> #endif /* !NOT_IN_libc */
> diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
> index f324406..35896c9 100644
> --- a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
> +++ b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
> @@ -17,6 +17,7 @@
> <http://www.gnu.org/licenses/>. */
>
> #include <sysdep.h>
> +#include <stap-probe.h>
> #define _ASM
> #ifdef __NO_VMX__
> # include <novmxsetjmp.h>
> @@ -25,7 +26,7 @@
> #endif
>
> .machine "altivec"
> -ENTRY (__sigsetjmp)
> +ENTRY (__sigsetjmp_symbol)
>
> #ifdef PTR_MANGLE
> mr r5,r1
> @@ -35,6 +36,7 @@ ENTRY (__sigsetjmp)
> stw r1,(JB_GPR1*4)(3)
> #endif
> mflr r0
> + LIBC_PROBE (setjmp, 3, 4@3, -4@4, 4@0)
> stw r14,((JB_GPRS+0)*4)(3)
> stfd fp14,((JB_FPRS+0*2)*4)(3)
> #ifdef PTR_MANGLE
> @@ -175,5 +177,5 @@ L(aligned_save_vmx):
> stvx 31,0,r6
> L(no_vmx):
> #endif
> - b __sigjmp_save@local
> -END (__sigsetjmp)
> + b __sigjmp_save_symbol@local
> +END (__sigsetjmp_symbol)
> diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp.S b/sysdeps/powerpc/powerpc32/fpu/setjmp.S
> index 92acff1..566aa34 100644
> --- a/sysdeps/powerpc/powerpc32/fpu/setjmp.S
> +++ b/sysdeps/powerpc/powerpc32/fpu/setjmp.S
> @@ -22,23 +22,25 @@
>
> #if defined NOT_IN_libc
> /* Build a non-versioned object for rtld-*. */
> +# define __sigsetjmp_symbol __sigsetjmp
> +# define __sigjmp_save_symbol __sigjmp_save
> # include "setjmp-common.S"
>
> #else /* !NOT_IN_libc */
> /* Build a versioned object for libc. */
> versioned_symbol (libc, __vmx__sigsetjmp, __sigsetjmp, GLIBC_2_3_4)
> -# define __sigsetjmp __vmx__sigsetjmp
> -# define __sigjmp_save __vmx__sigjmp_save
> +# define __sigsetjmp_symbol __vmx__sigsetjmp
> +# define __sigjmp_save_symbol __vmx__sigjmp_save
> # include "setjmp-common.S"
>
> # if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
> # define __NO_VMX__
> -# undef __sigsetjmp
> -# undef __sigjmp_save
> +# undef __sigsetjmp_symbol
> +# undef __sigjmp_save_symbol
> # undef JB_SIZE
> compat_symbol (libc, __novmx__sigsetjmp, __sigsetjmp, GLIBC_2_0)
> -# define __sigsetjmp __novmx__sigsetjmp
> -# define __sigjmp_save __novmx__sigjmp_save
> +# define __sigsetjmp_symbol __novmx__sigsetjmp
> +# define __sigjmp_save_symbol __novmx__sigjmp_save
> # include "setjmp-common.S"
> # endif
> #endif /* !NOT_IN_libc */
> diff --git a/sysdeps/powerpc/powerpc32/setjmp-common.S b/sysdeps/powerpc/powerpc32/setjmp-common.S
> index 3fb65b5..446fdff 100644
> --- a/sysdeps/powerpc/powerpc32/setjmp-common.S
> +++ b/sysdeps/powerpc/powerpc32/setjmp-common.S
> @@ -17,6 +17,7 @@
> <http://www.gnu.org/licenses/>. */
>
> #include <sysdep.h>
> +#include <stap-probe.h>
> #define _ASM
> #ifdef __NO_VMX__
> # include <novmxsetjmp.h>
> @@ -30,7 +31,7 @@
> # define SAVE_GP(N) stw r##N,((JB_GPRS+(N)-14)*4)(3)
> #endif
>
> -ENTRY (__sigsetjmp)
> +ENTRY (__sigsetjmp_symbol)
>
> #ifdef PTR_MANGLE
> mr r5,r1
> @@ -40,6 +41,7 @@ ENTRY (__sigsetjmp)
> stw r1,(JB_GPR1*4)(3)
> #endif
> mflr r0
> + LIBC_PROBE (setjmp, 3, 4@3, -4@4, 4@0)
> SAVE_GP (14)
> #ifdef PTR_MANGLE
> PTR_MANGLE2 (r0, r10)
> @@ -69,6 +71,6 @@ ENTRY (__sigsetjmp)
> li r3,0
> blr
> #else
> - b __sigjmp_save@local
> + b __sigjmp_save_symbol@local
> #endif
> -END (__sigsetjmp)
> +END (__sigsetjmp_symbol)
> diff --git a/sysdeps/powerpc/powerpc32/setjmp.S b/sysdeps/powerpc/powerpc32/setjmp.S
> index 49b64ec..467d9c9 100644
> --- a/sysdeps/powerpc/powerpc32/setjmp.S
> +++ b/sysdeps/powerpc/powerpc32/setjmp.S
> @@ -21,23 +21,25 @@
>
> #if defined NOT_IN_libc
> /* Build a non-versioned object for rtld-*. */
> +# define __sigsetjmp_symbol __sigsetjmp
> +# define __sigjmp_save_symbol __sigjmp_save
> # include "setjmp-common.S"
>
> #else /* !NOT_IN_libc */
> /* Build a versioned object for libc. */
> versioned_symbol (libc, __vmx__sigsetjmp, __sigsetjmp, GLIBC_2_3_4)
> -# define __sigsetjmp __vmx__sigsetjmp
> -# define __sigjmp_save __vmx__sigjmp_save
> +# define __sigsetjmp_symbol __vmx__sigsetjmp
> +# define __sigjmp_save_symbol __vmx__sigjmp_save
> # include "setjmp-common.S"
>
> # if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
> # define __NO_VMX__
> -# undef __sigsetjmp
> -# undef __sigjmp_save
> +# undef __sigsetjmp_symbol
> +# undef __sigjmp_save_symbol
> # undef JB_SIZE
> compat_symbol (libc, __novmx__sigsetjmp, __sigsetjmp, GLIBC_2_0)
> -# define __sigsetjmp __novmx__sigsetjmp
> -# define __sigjmp_save __novmx__sigjmp_save
> +# define __sigsetjmp_symbol __novmx__sigsetjmp
> +# define __sigjmp_save_symbol __novmx__sigjmp_save
> # include "setjmp-common.S"
> # endif
> #endif /* !NOT_IN_libc */
> diff --git a/sysdeps/powerpc/powerpc64/__longjmp-common.S b/sysdeps/powerpc/powerpc64/__longjmp-common.S
> index 4f1e3c8..b2ae276 100644
> --- a/sysdeps/powerpc/powerpc64/__longjmp-common.S
> +++ b/sysdeps/powerpc/powerpc64/__longjmp-common.S
> @@ -17,6 +17,7 @@
> <http://www.gnu.org/licenses/>. */
>
> #include <sysdep.h>
> +#include <stap-probe.h>
> #define _ASM
> #define _SETJMP_H
> #ifdef __NO_VMX__
> @@ -147,20 +148,21 @@ L(no_vmx):
> #ifdef PTR_DEMANGLE
> PTR_DEMANGLE2 (r0, r25)
> #endif
> + LIBC_PROBE (longjmp, 3, 8@3, -4@4, 8@0)
> mtlr r0
> /* std r2,40(r1) Restore the TOC save area. */
> ld r21,((JB_GPRS+7)*8)(r3)
> lfd fp21,((JB_FPRS+7)*8)(r3)
> ld r22,((JB_GPRS+8)*8)(r3)
> lfd fp22,((JB_FPRS+8)*8)(r3)
> - lwz r0,((JB_CR*8)+4)(r3) /* 32-bit CR. */
> + lwz r5,((JB_CR*8)+4)(r3) /* 32-bit CR. */
> ld r23,((JB_GPRS+9)*8)(r3)
> lfd fp23,((JB_FPRS+9)*8)(r3)
> ld r24,((JB_GPRS+10)*8)(r3)
> lfd fp24,((JB_FPRS+10)*8)(r3)
> ld r25,((JB_GPRS+11)*8)(r3)
> lfd fp25,((JB_FPRS+11)*8)(r3)
> - mtcrf 0xFF,r0
> + mtcrf 0xFF,r5
> ld r26,((JB_GPRS+12)*8)(r3)
> lfd fp26,((JB_FPRS+12)*8)(r3)
> ld r27,((JB_GPRS+13)*8)(r3)
> @@ -173,6 +175,7 @@ L(no_vmx):
> lfd fp30,((JB_FPRS+16)*8)(r3)
> ld r31,((JB_GPRS+17)*8)(r3)
> lfd fp31,((JB_FPRS+17)*8)(r3)
> + LIBC_PROBE (longjmp_target, 3, 8@3, -4@4, 8@0)
> mr r3,r4
> blr
> END (__longjmp)
> diff --git a/sysdeps/powerpc/powerpc64/setjmp-common.S b/sysdeps/powerpc/powerpc64/setjmp-common.S
> index 1829b9a..cf8a7e1 100644
> --- a/sysdeps/powerpc/powerpc64/setjmp-common.S
> +++ b/sysdeps/powerpc/powerpc64/setjmp-common.S
> @@ -17,6 +17,7 @@
> <http://www.gnu.org/licenses/>. */
>
> #include <sysdep.h>
> +#include <stap-probe.h>
> #define _ASM
> #ifdef __NO_VMX__
> #include <novmxsetjmp.h>
> @@ -42,11 +43,11 @@
> #endif
>
> .machine "altivec"
> -ENTRY (setjmp)
> +ENTRY (setjmp_symbol)
> CALL_MCOUNT 1
> li r4,1 /* Set second argument to 1. */
> - b JUMPTARGET (GLUE(__sigsetjmp,_ent))
> -END (setjmp)
> + b JUMPTARGET (GLUE(__sigsetjmp_symbol,_ent))
> +END (setjmp_symbol)
>
> #if defined SHARED && !defined IS_IN_rtld && !defined __NO_VMX__
> /* When called from within libc we need a special version of _setjmp
> @@ -60,16 +61,16 @@ END_2 (__GI__setjmp)
> /* Fall thru. */
> #endif
>
> -ENTRY (_setjmp)
> +ENTRY (_setjmp_symbol)
> CALL_MCOUNT 1
> li r4,0 /* Set second argument to 0. */
> - b JUMPTARGET (GLUE(__sigsetjmp,_ent))
> -END (_setjmp)
> -libc_hidden_def (_setjmp)
> + b JUMPTARGET (GLUE(__sigsetjmp_symbol,_ent))
> +END (_setjmp_symbol)
> +libc_hidden_def (_setjmp_symbol)
>
> -ENTRY (__sigsetjmp)
> +ENTRY (__sigsetjmp_symbol)
> CALL_MCOUNT 2
> -JUMPTARGET(GLUE(__sigsetjmp,_ent)):
> +JUMPTARGET(GLUE(__sigsetjmp_symbol,_ent)):
> #ifdef PTR_MANGLE
> mr r5, r1
> PTR_MANGLE (r5, r6)
> @@ -84,6 +85,7 @@ JUMPTARGET(GLUE(__sigsetjmp,_ent)):
> #else
> std r2,(JB_GPR2*8)(3)
> #endif
> + LIBC_PROBE (setjmp, 3, 8@3, -4@4, 8@0)
> std r14,((JB_GPRS+0)*8)(3)
> stfd fp14,((JB_FPRS+0)*8)(3)
> #ifdef PTR_MANGLE
> @@ -212,18 +214,18 @@ L(no_vmx):
> li r3,0
> blr
> #elif defined SHARED
> - b JUMPTARGET (__sigjmp_save)
> + b JUMPTARGET (__sigjmp_save_symbol)
> #else
> mflr r0
> std r0,16(r1)
> stdu r1,-112(r1)
> cfi_adjust_cfa_offset(112)
> cfi_offset(lr,16)
> - bl JUMPTARGET (__sigjmp_save)
> + bl JUMPTARGET (__sigjmp_save_symbol)
> nop
> ld r0,112+16(r1)
> addi r1,r1,112
> mtlr r0
> blr
> #endif
> -END (__sigsetjmp)
> +END (__sigsetjmp_symbol)
> diff --git a/sysdeps/powerpc/powerpc64/setjmp.S b/sysdeps/powerpc/powerpc64/setjmp.S
> index 0a3b2fc..5c6baf5 100644
> --- a/sysdeps/powerpc/powerpc64/setjmp.S
> +++ b/sysdeps/powerpc/powerpc64/setjmp.S
> @@ -22,6 +22,10 @@
>
> #if defined NOT_IN_libc
> /* Build a non-versioned object for rtld-*. */
> +# define setjmp_symbol setjmp
> +# define _setjmp_symbol _setjmp
> +# define __sigsetjmp_symbol __sigsetjmp
> +# define __sigjmp_save_symbol __sigjmp_save
> # include "setjmp-common.S"
>
> #else /* !NOT_IN_libc */
> @@ -29,28 +33,28 @@
> versioned_symbol (libc, __vmxsetjmp, setjmp, GLIBC_2_3_4)
> versioned_symbol (libc, __vmx_setjmp, _setjmp, GLIBC_2_3_4)
> versioned_symbol (libc, __vmx__sigsetjmp, __sigsetjmp, GLIBC_2_3_4)
> -# define setjmp __vmxsetjmp
> -# define _setjmp __vmx_setjmp
> -# define __sigsetjmp __vmx__sigsetjmp
> -# define __sigjmp_save __vmx__sigjmp_save
> +# define setjmp_symbol __vmxsetjmp
> +# define _setjmp_symbol __vmx_setjmp
> +# define __sigsetjmp_symbol __vmx__sigsetjmp
> +# define __sigjmp_save_symbol __vmx__sigjmp_save
> # include "setjmp-common.S"
> strong_alias (__vmxsetjmp, __vmx__setjmp)
> strong_alias (__vmx__sigsetjmp, __setjmp)
>
> # if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)
> -# undef setjmp
> -# undef _setjmp
> -# undef __sigsetjmp
> -# undef __sigjmp_save
> +# undef setjmp_symbol
> +# undef _setjmp_symbol
> +# undef __sigsetjmp_symbol
> +# undef __sigjmp_save_symbol
> # undef JB_SIZE
> # define __NO_VMX__
> compat_symbol (libc, __novmxsetjmp, setjmp, GLIBC_2_3)
> compat_symbol (libc, __novmx_setjmp,_setjmp, GLIBC_2_3);
> compat_symbol (libc, __novmx__sigsetjmp,__sigsetjmp, GLIBC_2_3)
> -# define setjmp __novmxsetjmp
> -# define _setjmp __novmx_setjmp
> -# define __sigsetjmp __novmx__sigsetjmp
> -# define __sigjmp_save __novmx__sigjmp_save
> +# define setjmp_symbol __novmxsetjmp
> +# define _setjmp_symbol __novmx_setjmp
> +# define __sigsetjmp_symbol __novmx__sigsetjmp
> +# define __sigjmp_save_symbol __novmx__sigjmp_save
> # include "setjmp-common.S"
> strong_alias (__novmxsetjmp, __novmx__setjmp)
> # endif
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
> index 978370e..6e88b61 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
> @@ -24,7 +24,7 @@
> .string "longjmp causes uninitialized stack frame"
> .text
>
> -#define __longjmp ____longjmp_chk
> +#define __longjmp_symbol ____longjmp_chk
>
> #ifdef PIC
> # define LOAD_ARG \
>