selftests/sigaltstack: Fix ppc64 GCC build

commit 17c743b9da upstream.

Building the sigaltstack test with GCC on 64-bit powerpc errors with:

  gcc -Wall     sas.c  -o /home/michael/linux/.build/kselftest/sigaltstack/sas
  In file included from sas.c:23:
  current_stack_pointer.h:22:2: error: #error "implement current_stack_pointer equivalent"
     22 | #error "implement current_stack_pointer equivalent"
        |  ^~~~~
  sas.c: In function ‘my_usr1’:
  sas.c:50:13: error: ‘sp’ undeclared (first use in this function); did you mean ‘p’?
     50 |         if (sp < (unsigned long)sstack ||
        |             ^~

This happens because GCC doesn't define __ppc__ for 64-bit builds, only
32-bit builds. Instead use __powerpc__ to detect powerpc builds, which
is defined by clang and GCC for 64-bit and 32-bit builds.

Fixes: 05107edc91 ("selftests: sigaltstack: fix -Wuninitialized")
Cc: stable@vger.kernel.org # v6.3+
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240520062647.688667-1-mpe@ellerman.id.au
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Michael Ellerman 2024-05-20 16:26:47 +10:00 committed by Greg Kroah-Hartman
parent ff5bbbdee0
commit 47e85f7121

View file

@ -8,7 +8,7 @@ register unsigned long sp asm("sp");
register unsigned long sp asm("esp"); register unsigned long sp asm("esp");
#elif __loongarch64 #elif __loongarch64
register unsigned long sp asm("$sp"); register unsigned long sp asm("$sp");
#elif __ppc__ #elif __powerpc__
register unsigned long sp asm("r1"); register unsigned long sp asm("r1");
#elif __s390x__ #elif __s390x__
register unsigned long sp asm("%15"); register unsigned long sp asm("%15");