Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1674172

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

From Masahiro Yamada <yamada.masahiro@socionext.com>
Newsgroups linux.kernel
Subject Re: [PATCH v5 3/3] x86/build: Specify stack alignment for clang
Date 2017-06-25 06:10 +0200
Message-ID <tW722-eq-5@gated-at.bofh.it> (permalink)
References <tUXep-4FF-3@gated-at.bofh.it> <tUXep-4FF-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


2017-06-22 8:28 GMT+09:00 Matthias Kaehlcke <mka@chromium.org>:
> 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@chromium.org>
> ---
> 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

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH v5 3/3] x86/build: Specify stack alignment for clang Matthias Kaehlcke <mka@chromium.org> - 2017-06-22 01:30 +0200
  Re: [PATCH v5 3/3] x86/build: Specify stack alignment for clang Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-06-25 06:10 +0200

csiph-web