mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-08-22 00:42:01 +02:00

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
24 lines
650 B
C
24 lines
650 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
#if __alpha__
|
|
register unsigned long sp asm("$30");
|
|
#elif __arm__ || __aarch64__ || __csky__ || __m68k__ || __mips__ || __riscv
|
|
register unsigned long sp asm("sp");
|
|
#elif __i386__
|
|
register unsigned long sp asm("esp");
|
|
#elif __loongarch64
|
|
register unsigned long sp asm("$sp");
|
|
#elif __powerpc__
|
|
register unsigned long sp asm("r1");
|
|
#elif __s390x__
|
|
register unsigned long sp asm("%15");
|
|
#elif __sh__
|
|
register unsigned long sp asm("r15");
|
|
#elif __x86_64__
|
|
register unsigned long sp asm("rsp");
|
|
#elif __XTENSA__
|
|
register unsigned long sp asm("a1");
|
|
#else
|
|
#error "implement current_stack_pointer equivalent"
|
|
#endif
|