On Sat, May 12, 2018 at 10:54 AM, Mathieu Malaterre <ma...@debian.org> wrote: > Nick, > > On Sat, May 12, 2018 at 5:35 AM, Nicholas Piggin <npig...@gmail.com> wrote: >> The exec_target binary could segfault calling _exit(2) because r13 >> is not set up properly (and libc looks at that when performing a >> syscall). Call SYS_exit using syscall(2) which doesn't seem to >> have this problem. >> >> Signed-off-by: Nicholas Piggin <npig...@gmail.com> >> --- >> tools/testing/selftests/powerpc/benchmarks/exec_target.c | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/tools/testing/selftests/powerpc/benchmarks/exec_target.c >> b/tools/testing/selftests/powerpc/benchmarks/exec_target.c >> index 3c9c144192be..c14b0fc1edde 100644 >> --- a/tools/testing/selftests/powerpc/benchmarks/exec_target.c >> +++ b/tools/testing/selftests/powerpc/benchmarks/exec_target.c >> @@ -6,8 +6,11 @@ >> * Copyright 2018, Anton Blanchard, IBM Corp. >> */ >> >> -void _exit(int); >> +#define _GNU_SOURCE >> +#include <unistd.h> >> +#include <sys/syscall.h> >> + >> void _start(void) >> { >> - _exit(0); >> + syscall(SYS_exit, 0); >> } >> -- >> 2.17.0 >> > > Could you please apply the same patch to : > > ./tools/testing/selftests/size/get_size.c > > It segfault on ppc32 with default cross compiler from Debian.
Nevermind, I did not tested and this seems not to be sufficient to make the executable run properly.