Re: [PATCH v5 3/3] x86/build: Specify stack alignment for clang

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux