sh: Fix clone exit return code

Message ID 1513253436-11438-1-git-send-email-adhemerval.zanella@linaro.org
State New
Headers show
Series
  • sh: Fix clone exit return code
Related show

Commit Message

Adhemerval Zanella Dec. 14, 2017, 12:10 p.m.
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.

	* sysdeps/unix/sysv/linux/sh/clone.S (__clone): Fix exit return
	code.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

---
 ChangeLog                          | 6 ++++++
 sysdeps/unix/sysv/linux/sh/clone.S | 1 +
 2 files changed, 7 insertions(+)

-- 
2.7.4

Comments

John Paul Adrian Glaubitz Dec. 14, 2017, 1:08 p.m. | #1
Hi Adhemerval!

On 12/14/2017 01:10 PM, Adhemerval Zanella wrote:
> 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

I assume you have run the full testsuite then. Could you also post your
results to the glibc wiki for SH?

Thanks,
Adrian

-- 
  .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
   `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Joseph Myers Dec. 14, 2017, 2:15 p.m. | #2
On Thu, 14 Dec 2017, John Paul Adrian Glaubitz wrote:

> Hi Adhemerval!

> 

> On 12/14/2017 01:10 PM, Adhemerval Zanella wrote:

> > 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

> I assume you have run the full testsuite then. Could you also post your

> results to the glibc wiki for SH?


Note that results on the wiki relate to particular releases (well, 
typically versions during the release freeze) rather than to master.  
Thus, it would be appropriate to post results on the 2.26 wiki page for 
2.26 branch (making clear what version is being tested to avoid confusing 
anyone using an older branch version and comparing their results), or on 
the 2.27 wiki page for results from 1 January onwards, but we don't have 
somewhere to post results for mainline (other than the libc-testresults 
mailing list - we don't yet have a script for mailing results from a 
single testsuite run along with information about the system 
configuration, but having such a way to mail results would be useful).

-- 
Joseph S. Myers
joseph@codesourcery.com
Adhemerval Zanella Dec. 14, 2017, 3:38 p.m. | #3
On 14/12/2017 11:08, John Paul Adrian Glaubitz wrote:
> Hi Adhemerval!

> 

> On 12/14/2017 01:10 PM, Adhemerval Zanella wrote:

>> 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

> I assume you have run the full testsuite then. Could you also post your

> results to the glibc wiki for SH?

> 

> Thanks,

> Adrian

> 


I did not run the full testsuite for SH yet, only the nptl tests so far
on master (still struggling with system toolchain to make the full
testsuite make clean).
John Paul Adrian Glaubitz Dec. 14, 2017, 3:40 p.m. | #4
On 12/14/2017 04:38 PM, Adhemerval Zanella wrote:
> I did not run the full testsuite for SH yet, only the nptl tests so far

> on master (still struggling with system toolchain to make the full

> testsuite make clean).


Ok. I am running "make check" for 2.26 now and will report once it's done.

Maybe I should finally set up my other SH evaluation board.

Adrian

-- 
  .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
   `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Joseph Myers Dec. 14, 2017, 3:48 p.m. | #5
Also, do people interested in sh think the sh3 support is still useful, or 
is only sh4 support useful now?

-- 
Joseph S. Myers
joseph@codesourcery.com
John Paul Adrian Glaubitz Dec. 14, 2017, 3:50 p.m. | #6
On 12/14/2017 04:48 PM, Joseph Myers wrote:
> Also, do people interested in sh think the sh3 support is still useful, or

> is only sh4 support useful now?


Yes, SH-3 is very useful for the upcoming J-Core J3 CPU [1], so please
don't remove support for it.

SH-3 and SH-4 are also part of the Jenkins rebootstrap jobs [2].

Adrian

> [1] http://j-core.org/roadmap.html

> [2] https://jenkins.debian.net/view/rebootstrap/


-- 
  .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
   `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Joseph Myers Dec. 14, 2017, 4:06 p.m. | #7
On Thu, 14 Dec 2017, John Paul Adrian Glaubitz wrote:

> On 12/14/2017 04:48 PM, Joseph Myers wrote:

> > Also, do people interested in sh think the sh3 support is still useful, or

> > is only sh4 support useful now?

> 

> Yes, SH-3 is very useful for the upcoming J-Core J3 CPU [1], so please

> don't remove support for it.


It would be useful to refactor the sysdeps directories to reduce the need 
for separate sh3 and sh4 sysdeps (e.g. why shouldn't they share a single 
setjmp implementation with appropriate conditionals?).

My understanding from 
<https://sourceware.org/ml/libc-alpha/2014-01/msg00388.html> is that SH3 
and SH4 have incompatible ABIs, though I don't know what the differences 
are, or whether there are still differences (e.g. at the function call ABI 
level) after the kernel sigcontext changes in Linux 4.8 (commit 
bbe6c77857c38f4acbdc4fc70399515226d1859a) and consequent glibc changes 
(commit f07820b7d13846431bb1c291414b6286cc5f5cbf).

> > [1] http://j-core.org/roadmap.html


That refers to SH3 hard float.  Does that mean more SH ABI variants are 
coming (if ABI differences between SH3 and SH4 remain)?  (glibc doesn't 
handle any sort of SH3 hard float at present; most things to do with 
floating-point registers, exceptions and rounding modes are in sh4 sysdeps 
directories.)

-- 
Joseph S. Myers
joseph@codesourcery.com
Adhemerval Zanella Dec. 19, 2017, 12:31 p.m. | #8
On 14/12/2017 13:40, John Paul Adrian Glaubitz wrote:
> On 12/14/2017 04:38 PM, Adhemerval Zanella wrote:

>> I did not run the full testsuite for SH yet, only the nptl tests so far

>> on master (still struggling with system toolchain to make the full

>> testsuite make clean).

> 

> Ok. I am running "make check" for 2.26 now and will report once it's done.

> 

> Maybe I should finally set up my other SH evaluation board.

> 

> Adrian

> 


Thanks for checking on 2.26. I will commit this patch shortly if
no one opposes. Although I haven't check with a full testsuite,
the affected testscases, tst-align-clone.c, tst-clone.c, tst-clone2.c, 
tst-clone3.c, and tst-getpid1, show no regression.
John Paul Adrian Glaubitz Dec. 19, 2017, 12:36 p.m. | #9
On 12/19/2017 01:31 PM, Adhemerval Zanella wrote:
> Thanks for checking on 2.26. I will commit this patch shortly if

> no one opposes. Although I haven't check with a full testsuite,

> the affected testscases, tst-align-clone.c, tst-clone.c, tst-clone2.c,

> tst-clone3.c, and tst-getpid1, show no regression.


Sorry, I forgot to post the results. The "make check" actually failed:

> https://people.debian.org/~glaubitz/glibc-2.26-SH-check.log


I also killed the buildd on tirpitz now to free up more resources for you.

Adrian

-- 
  .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
   `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Adhemerval Zanella Dec. 19, 2017, 12:51 p.m. | #10
On 19/12/2017 10:36, John Paul Adrian Glaubitz wrote:
> On 12/19/2017 01:31 PM, Adhemerval Zanella wrote:

>> Thanks for checking on 2.26. I will commit this patch shortly if

>> no one opposes. Although I haven't check with a full testsuite,

>> the affected testscases, tst-align-clone.c, tst-clone.c, tst-clone2.c,

>> tst-clone3.c, and tst-getpid1, show no regression.

> 

> Sorry, I forgot to post the results. The "make check" actually failed:

> 

>> https://people.debian.org/~glaubitz/glibc-2.26-SH-check.log

> 

> I also killed the buildd on tirpitz now to free up more resources for you.

> 

> Adrian

> 


Thanks, the c++ tests seems to trigger a build failure with system toolchain
on tirpitz (although the log you posted did not show much information regarding
it).

Patch

diff --git a/sysdeps/unix/sysv/linux/sh/clone.S b/sysdeps/unix/sysv/linux/sh/clone.S
index b13a64b..d369a82 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