2017-06-22 8:28 GMT+09:00 Matthias Kaehlcke <mka@xxxxxxxxxxxx>: > For gcc stack alignment is configured with -mpreferred-stack-boundary=N, > clang has the option -mstack-alignment=N for that purpose. Use the same > alignment as with gcc. > > If the alignment is not specified clang assumes an alignment of > 16 bytes, as required by the standard ABI. However as mentioned in > d9b0cde91c60 ("x86-64, gcc: Use -mpreferred-stack-boundary=3 if > supported") the standard kernel entry on x86-64 leaves the stack > on an 8-byte boundary, as a consequence clang will keep the stack > misaligned. > > Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx> > --- > Changes in v5: > - Use cc-option to probe for a compiler option instead of selecting > it based on the compiler name. > > arch/x86/Makefile | 26 +++++++++++++++++++++----- > 1 file changed, 21 insertions(+), 5 deletions(-) > > diff --git a/arch/x86/Makefile b/arch/x86/Makefile > index b2dae639f778..b32b32b422c2 100644 > --- a/arch/x86/Makefile > +++ b/arch/x86/Makefile > @@ -11,6 +11,14 @@ else > KBUILD_DEFCONFIG := $(ARCH)_defconfig > endif > > +# For gcc stack alignment is specified with -mpreferred-stack-boundary, > +# clang has the option -mstack-alignment for that purpose. > +ifneq ($(call cc-option, -mpreferred-stack-boundary=4,),) > + cc_stack_align_opt := -mpreferred-stack-boundary > +else ifneq ($(call cc-option, -mstack-alignment=4,),) > + cc_stack_align_opt := -mstack-alignment > +endif > + The commas after "=4" are redundant. I removed them when I applied this patch. -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html