This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.18-511-geb5ad6b


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  eb5ad6b9bcf579f1cb5c67ca4650ee4a0cf1b4b1 (commit)
       via  76a4a26979e58132d500e700ac1637a09c6d9cef (commit)
      from  9298ecba15e2b8055e68189c1b11b08ef3ac008d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=eb5ad6b9bcf579f1cb5c67ca4650ee4a0cf1b4b1

commit eb5ad6b9bcf579f1cb5c67ca4650ee4a0cf1b4b1
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:   Fri Nov 22 06:36:54 2013 -0600

    PowerPC: Add systemtap static probe points in setjmp/longjmp
    
    This patch add static probes for setjmp/longjmp in the way gdb expects,fixing
    the gdb.base/longjmp.exp gdb testcases.
    
    It changes the symbol_name and use macros to to avoid change the probe names
    and ending up adding more logic on GDB (since with the expected name
    GDB work seamlessly).

diff --git a/ChangeLog b/ChangeLog
index dc38e52..440e6e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+2013-12-05  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.
+
 2013-12-05  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	* benchtests/README: Add note about output arguments.
diff --git a/sysdeps/powerpc/powerpc32/__longjmp-common.S b/sysdeps/powerpc/powerpc32/__longjmp-common.S
index df1d519..97c966d 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,24 @@ ENTRY (__longjmp)
 # endif
 	PTR_DEMANGLE2 (r0, r25)
 #endif
+	/* longjmp/longjmp_target probe expects longjmp first argument (4@3),
+	   second argument (-4@4), and target address (4@0), respectively.  */
+	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, 4@3, -4@4, 4@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..1361154 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,22 @@ L(no_vmx):
 # endif
 	PTR_DEMANGLE2 (r0, r25)
 #endif
+	/* longjmp/longjmp_target probe expects longjmp first argument (4@3),
+	   second argument (-4@4), and target address (4@0), respectively.  */
+	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 +172,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, 4@3, -4@4, 4@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..08efd64 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,9 @@ ENTRY (__sigsetjmp)
 	stw  r1,(JB_GPR1*4)(3)
 #endif
 	mflr r0
+	/* setjmp probe expects longjmp first argument (4@3), second argument
+	   (-4@4), and target address (4@0), respectively.  */
+	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 +179,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..0c77029 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,9 @@ ENTRY (__sigsetjmp)
 	stw  r1,(JB_GPR1*4)(3)
 #endif
 	mflr r0
+	/* setjmp probe expects longjmp first argument (4@3), second argument
+	   (-4@4), and target address (4@0), respectively.  */
+	LIBC_PROBE (setjmp, 3, 4@3, -4@4, 4@0)
 	SAVE_GP (14)
 #ifdef PTR_MANGLE
 	PTR_MANGLE2 (r0, r10)
@@ -69,6 +73,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 ce5a018..3c792b4 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,23 @@ L(no_vmx):
 #ifdef PTR_DEMANGLE
 	PTR_DEMANGLE2 (r0, r25)
 #endif
+     /* longjmp/longjmp_target probe expects longjmp first argument (8@3),
+	second argument (-4@4), and target address (8@0), respectively.  */
+	LIBC_PROBE (longjmp, 3, 8@3, -4@4, 8@0)
 	mtlr r0
 /* 	std r2,FRAME_TOC_SAVE(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 +177,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 9e4fb02..6ab44d6 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
@@ -57,20 +58,20 @@ ENTRY (__GI__setjmp)
 	std r2,FRAME_TOC_SAVE(r1)		/* Save the callers TOC in the save area.  */
 	CALL_MCOUNT 1
 	li r4,0			/* Set second argument to 0.  */
-	b JUMPTARGET (GLUE(__sigsetjmp,_ent))
+	b JUMPTARGET (GLUE(__sigsetjmp_symbol,_ent))
 END (__GI__setjmp)
 #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)
@@ -85,6 +86,9 @@ JUMPTARGET(GLUE(__sigsetjmp,_ent)):
 #else
 	std  r2,(JB_GPR2*8)(3)
 #endif
+	/* setjmp probe expects longjmp first argument (8@3), second argument
+	   (-4@4), and target address (8@0), respectively.  */
+	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
@@ -213,18 +217,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,FRAME_LR_SAVE(r1)
 	stdu	r1,-FRAME_MIN_SIZE(r1)
 	cfi_adjust_cfa_offset(FRAME_MIN_SIZE)
 	cfi_offset(lr,FRAME_LR_SAVE)
-	bl	JUMPTARGET (__sigjmp_save)
+	bl	JUMPTARGET (__sigjmp_save_symbol)
 	nop
 	ld	r0,FRAME_MIN_SIZE+FRAME_LR_SAVE(r1)
 	addi	r1,r1,FRAME_MIN_SIZE
 	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 \

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=76a4a26979e58132d500e700ac1637a09c6d9cef

commit 76a4a26979e58132d500e700ac1637a09c6d9cef
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:   Fri Nov 22 06:36:09 2013 -0600

    Fix elf/get-dynamic-info.h for AT

diff --git a/elf/get-dynamic-info.h b/elf/get-dynamic-info.h
index 3cc1073..bf4ccbb 100644
--- a/elf/get-dynamic-info.h
+++ b/elf/get-dynamic-info.h
@@ -130,8 +130,8 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
   assert (info[DT_FLAGS] == NULL
 	  || (info[DT_FLAGS]->d_un.d_val & ~DF_BIND_NOW) == 0);
   /* Flags must not be set for ld.so.  */
-  assert (info[DT_RUNPATH] == NULL);
-  assert (info[DT_RPATH] == NULL);
+  //assert (info[DT_RUNPATH] == NULL);
+  //assert (info[DT_RPATH] == NULL);
 #else
   if (info[DT_FLAGS] != NULL)
     {

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   31 ++++++++++++++++++++
 elf/get-dynamic-info.h                             |    4 +-
 sysdeps/powerpc/powerpc32/__longjmp-common.S       |   13 ++++++--
 sysdeps/powerpc/powerpc32/__longjmp.S              |    7 ++--
 sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S   |   13 ++++++--
 sysdeps/powerpc/powerpc32/fpu/__longjmp.S          |    7 ++--
 sysdeps/powerpc/powerpc32/fpu/setjmp-common.S      |   10 ++++--
 sysdeps/powerpc/powerpc32/fpu/setjmp.S             |   14 +++++----
 sysdeps/powerpc/powerpc32/setjmp-common.S          |   10 ++++--
 sysdeps/powerpc/powerpc32/setjmp.S                 |   14 +++++----
 sysdeps/powerpc/powerpc64/__longjmp-common.S       |    9 ++++-
 sysdeps/powerpc/powerpc64/setjmp-common.S          |   30 +++++++++++--------
 sysdeps/powerpc/powerpc64/setjmp.S                 |   28 ++++++++++-------
 .../sysv/linux/powerpc/powerpc32/____longjmp_chk.S |    2 +-
 14 files changed, 130 insertions(+), 62 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]