From: Heiko Carstens Date: Fri, 11 Apr 2008 11:46:54 +0000 (+0200) Subject: Fix "$(AS) -traditional" compile breakage caused by asmlinkage_protect X-Git-Tag: v3.12-rc1~22074 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b0fac02370cffad956ff3de5e8ed4df7e7b875d7;p=kernel%2Fkernel-generic.git 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 Cc: Martin Schwidefsky Signed-off-by: Heiko Carstens Signed-off-by: Linus Torvalds --- diff --git a/include/linux/linkage.h b/include/linux/linkage.h index b163c5c..2119610 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -30,9 +30,12 @@ * protection to work (ie no more work that the compiler might * end up needing stack temporaries for). */ +/* Assembly files may be compiled with -traditional .. */ +#ifndef __ASSEMBLY__ #ifndef asmlinkage_protect # define asmlinkage_protect(n, ret, args...) do { } while (0) #endif +#endif #ifndef __ALIGN #define __ALIGN .align 4,0x90