Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix "$(AS) -traditional" compile breakage caused by asmlinkage_protect

git commit 54a015104136974262afa4b8ddd943ea70dec8a2 ("asmlinkage_protect
replaces prevent_tail_call") causes this build failure on s390:

AS arch/s390/kernel/entry64.o
In file included from arch/s390/kernel/entry64.S:14:
include/linux/linkage.h:34: error: syntax error in macro parameter list
make[1]: *** [arch/s390/kernel/entry64.o] Error 1
make: *** [arch/s390/kernel] Error 2

and some other architectures. The reason is that some architectures add
the "-traditional" flag to the invocation of $(AS), which disables
variadic macro argument support.

So just surround the new define with an #ifndef __ASSEMBLY__ to prevent
any side effects on asm code.

Cc: Roland McGrath <roland@redhat.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Heiko Carstens and committed by
Linus Torvalds
b0fac023 099ce8f4

+3
+3
include/linux/linkage.h
··· 30 30 * protection to work (ie no more work that the compiler might 31 31 * end up needing stack temporaries for). 32 32 */ 33 + /* Assembly files may be compiled with -traditional .. */ 34 + #ifndef __ASSEMBLY__ 33 35 #ifndef asmlinkage_protect 34 36 # define asmlinkage_protect(n, ret, args...) do { } while (0) 37 + #endif 35 38 #endif 36 39 37 40 #ifndef __ALIGN