summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-12-14 10:07:44 -0200
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-12-19 12:02:01 -0200
commit554e3d51efdd7d15c15876b80a7cba3ad9b6a738 (patch)
treed28607d0f923e551df1cf98dd50374b63a784b88
parentcba595c350e52194e10c0006732e1991e3d0803b (diff)
downloadglibc-554e3d51efdd7d15c15876b80a7cba3ad9b6a738.tar.gz
glibc-554e3d51efdd7d15c15876b80a7cba3ad9b6a738.tar.xz
glibc-554e3d51efdd7d15c15876b80a7cba3ad9b6a738.zip
sh: Fix clone exit return code (BZ #22605)
Since 3f823e87cc (Call exit directly in clone (BZ #21512)) SH clone
implementation fails to set the exit code resulting in the failures:

FAIL: nptl/tst-align-clone
FAIL: nptl/tst-getpid1

This patch fixes the both testcases.

	[BZ #22605]
	* sysdeps/unix/sysv/linux/sh/clone.S (__clone): Fix exit return
	code.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/sh/clone.S1
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c408eb2350..b608b24814 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-12-19  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	[BZ #22605]
+	* sysdeps/unix/sysv/linux/sh/clone.S (__clone): Fix exit return
+	code.
+
 2017-12-19  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #22563]
diff --git a/sysdeps/unix/sysv/linux/sh/clone.S b/sysdeps/unix/sysv/linux/sh/clone.S
index b13a64bb10..d369a82d87 100644
--- a/sysdeps/unix/sysv/linux/sh/clone.S
+++ b/sysdeps/unix/sysv/linux/sh/clone.S
@@ -73,6 +73,7 @@ ENTRY(__clone)
 	 mov.l	@(4,r15), r4
 
 	/* we are done, passing the return value through r0  */
+	mov     r0, r4
 	mov	#+SYS_ify(exit), r3
 	trapa	#0x15
 	.align	2