tools: fix testing/selftests/sigaltstack for s390x
On s390x the compilation of the file sas.c in directory
tools/testing/selftests/sigaltstack fails with this error message:
root@s35lp76 testing]# make selftests/sigaltstack/sas
cc selftests/sigaltstack/sas.c -o selftests/sigaltstack/sas
selftests/sigaltstack/sas.c: In function ‘my_usr1’:
selftests/sigaltstack/sas.c:42:25: error: invalid register name for ‘sp’
register unsigned long sp asm("sp");
^~
<builtin>: recipe for target 'selftests/sigaltstack/sas' failed
make: *** [selftests/sigaltstack/sas] Error 1
[root@s35lp76 testing]#
On s390x the stack pointer is register r15, the register name "sp"
is unknown.
Make this line platform dependend and use register r15.
With this patch the compilation and test succeeds:
[root@s35lp76 testing]# ./selftests/sigaltstack/sas
TAP version 13
ok 1 Initial sigaltstack state was SS_DISABLE
# [RUN] signal USR1
ok 2 sigaltstack is disabled in sighandler
# [RUN] switched to user ctx
# [RUN] signal USR2
# [OK] Stack preserved
ok 3 sigaltstack is still SS_AUTODISARM after signal
Pass 3 Fail 0 Xfail 0 Xpass 0 Skip 0 Error 0
1..3
[root@s35lp76 testing]#
Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
This commit is contained in:
committed by
Shuah Khan
parent
64cfcaed7b
commit
96e5335859
@@ -39,7 +39,11 @@ void my_usr1(int sig, siginfo_t *si, void *u)
|
||||
stack_t stk;
|
||||
struct stk_data *p;
|
||||
|
||||
#if __s390x__
|
||||
register unsigned long sp asm("%15");
|
||||
#else
|
||||
register unsigned long sp asm("sp");
|
||||
#endif
|
||||
|
||||
if (sp < (unsigned long)sstack ||
|
||||
sp >= (unsigned long)sstack + SIGSTKSZ) {
|
||||
|
||||
Reference in New Issue
Block a user