about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2016-10-21 15:19:10 -0200
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2016-10-28 19:13:21 -0200
commitce193f551ec21df85c934626a21730881484dcf0 (patch)
tree8c5f621325b1b559f98dccfcd2e360f0d86cd404
parentae9166f2b8936304ea347a98519372804963447f (diff)
downloadglibc-ce193f551ec21df85c934626a21730881484dcf0.tar.gz
glibc-ce193f551ec21df85c934626a21730881484dcf0.tar.xz
glibc-ce193f551ec21df85c934626a21730881484dcf0.zip
powerpc: Fix TOC stub on powerpc64 clone()
Use a function call to _exit() so that the linker can create a TOC stub
instead of just a branch.

Tested on powerpc64.
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S2
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 27a0194fcb..4f76008663 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-28  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
+
+	[BZ #20728]
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Replace a
+	branch to _exit() by a function call.
+
 2016-10-28  Florian Weimer  <fweimer@redhat.com>
 
 	* malloc/malloc.c: Update chunk layout comments.
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
index 7c59b9b4e9..df824f5a69 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
@@ -97,7 +97,7 @@ L(oldpid):
 #ifdef SHARED
 	b	JUMPTARGET(__GI__exit)
 #else
-	b	JUMPTARGET(_exit)
+	bl	JUMPTARGET(_exit)
 	/* We won't ever get here but provide a nop so that the linker
 	   will insert a toc adjusting stub if necessary.  */
 	nop