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

From: Matthias Kaehlcke
Date: Tue Jun 20 2017 - 13:37:28 EST


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

If preferred cc-option could be used to probe for
-mpreferred-stack-boundary , however it would require REALMODE_CFLAGS
to be moved further down in the Makefile.

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.

> > I also think this is a cleaner solution. [...]
>
> I concur with hpa: hard-coding compiler is awfully fragile and ugly as well.
>
> With the proper probing of compiler options it will be possible for compilers to
> consolidate their options, and it would be possible for a third compiler to use a
> mixture of GCC and Clang options. With hard-coding none of that flexibility is
> available.
>
> > but I'm happy to respin the patch if you have another suggestion that is ok for
> > both of you.
>
> Please do.
>
> Thanks,
>
> Ingo