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

From: Ingo Molnar
Date: Wed Jun 21 2017 - 03:19:11 EST

* Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote:

> El Tue, Jun 20, 2017 at 11:20:54AM +0200 Ingo Molnar ha dit:
> >
> > * Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote:
> >
> > > Ingo didn't like the duplication and suggested the use of a variable, which
> > > kinda implies a check for the compiler name.
> >
> > I don't think it implies that: why cannot cc_stack_align_opt probe for the
> > compiler option and use whichever is available, without hard-coding the compiler
> > name?
> We could do this:
> ifneq ($(call __cc-option, $(CC), -mno-sse, -mpreferred-stack-boundary=3,),)
> cc_stack_align_opt := -mpreferred-stack-boundary
> endif
> ifneq ($(call cc-option, -mstack-alignment=3,),)
> cc_stack_align_opt := -mstack-alignment
> endif

The principle Looks good to me - but I'd make the second probing an 'else' branch,
i.e. probe for a suitable compiler option until we find one. That would also not
burden the GCC build with probing for different compiler options.

Please also add a comment in the code that explains that the first option is a GCC
option and the second one is a Clang-ism.

> Since this solution also won't win a beauty price please let me know
> if it is acceptable before respinning the patch or if you have other
> suggestions.

This one already looks a lot cleaner to me than any of the previous ones.