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.24-262-g3f413ec


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  3f413ec8d1aaa338946215f2510369f5e3d891eb (commit)
      from  d0800ae0e7162631136a0042e87eb42c641455d9 (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=3f413ec8d1aaa338946215f2510369f5e3d891eb

commit 3f413ec8d1aaa338946215f2510369f5e3d891eb
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 4 19:59:38 2016 +0200

    powerpc32: make PLT call in _mcount compatible with -msecure-plt (bug 20554)

diff --git a/ChangeLog b/ChangeLog
index cd17710..09e0485 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-10-09  Alan Modra  <amodra@gmail.com>
+	    Andreas Schwab  <schwab@linux-m68k.org>
+
+	[BZ #20554]
+	* sysdeps/powerpc/powerpc32/ppc-mcount.S (_mcount)
+	[PIC && !SHARED]: Set up PIC register for PLT call.
+
 2016-10-07  Joseph Myers  <joseph@codesourcery.com>
 
 	* math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (iseqsig): Define
diff --git a/sysdeps/powerpc/powerpc32/ppc-mcount.S b/sysdeps/powerpc/powerpc32/ppc-mcount.S
index 68df440..1d36b91 100644
--- a/sysdeps/powerpc/powerpc32/ppc-mcount.S
+++ b/sysdeps/powerpc/powerpc32/ppc-mcount.S
@@ -40,22 +40,38 @@
 */
 
 ENTRY(_mcount)
+#if defined PIC && !defined SHARED
+# define CALLER_LR_OFFSET 68
+	stwu	r1,-64(r1)
+	cfi_adjust_cfa_offset (64)
+	stw	r30, 48(r1)
+	cfi_rel_offset (r30, 48)
+#else
+# define CALLER_LR_OFFSET 52
 	stwu	r1,-48(r1)
 	cfi_adjust_cfa_offset (48)
+#endif
 /* We need to save the parameter-passing registers.  */
 	stw	r3, 12(r1)
 	stw	r4, 16(r1)
 	stw	r5, 20(r1)
 	stw	r6, 24(r1)
 	mflr	r4
-	lwz	r3, 52(r1)
+#if defined PIC && !defined SHARED
+	bcl	20,31,0f
+0:
+	mflr	r30
+	addis	r30, r30, _GLOBAL_OFFSET_TABLE_-0b@ha
+	addi	r30, r30, _GLOBAL_OFFSET_TABLE_-0b@l
+#endif
+	lwz	r3, CALLER_LR_OFFSET(r1)
 	mfcr	r5
 	stw	r7, 28(r1)
 	stw	r8, 32(r1)
 	stw	r9, 36(r1)
 	stw	r10,40(r1)
 	stw	r4, 44(r1)
-	cfi_offset (lr, -4)
+	cfi_rel_offset (lr, 44)
 	stw	r5,  8(r1)
 #ifndef SHARED
 	bl	JUMPTARGET(__mcount_internal)
@@ -71,13 +87,18 @@ ENTRY(_mcount)
 	mtcrf	0xff,r6
 	lwz	r5, 20(r1)
 	lwz	r6, 24(r1)
-	lwz	r0, 52(r1)
+	lwz	r0, CALLER_LR_OFFSET(r1)
 	lwz	r7, 28(r1)
 	lwz	r8, 32(r1)
 	mtlr	r0
 	lwz	r9, 36(r1)
 	lwz	r10,40(r1)
  /* ...unwind the stack frame, and return to your usual programming.  */
+#if defined PIC && !defined SHARED
+	lwz	r30, 48(r1)
+	addi	r1,r1,64
+#else
 	addi	r1,r1,48
+#endif
 	bctr
 END(_mcount)

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

Summary of changes:
 ChangeLog                              |    7 +++++++
 sysdeps/powerpc/powerpc32/ppc-mcount.S |   27 ++++++++++++++++++++++++---
 2 files changed, 31 insertions(+), 3 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]