Re: [PATCH v0 1/5] x86_64: march=native support

From: Alexey Dobriyan
Date: Fri Dec 08 2017 - 05:01:12 EST


On 12/8/17, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
> One more thing: you HAVE to make
> arch/x86/include/asm/required-features.h aware of any features that the
> kernel unconditionally depend on.

Yes, this is foolprof part I have to think through.

> Again, using the gcc cpp macros that reflect what bits gcc itself
> broadcast. However, this is perhaps where CONFIG flags become
> important, since required-features.h has to be able to be compiled in
> the bootcode environment, which is different from the normal kernel
> compiler environment.
>
> We could, however, automagically generate a reflection of these as a
> header file:
>
> echo '#ifndef __LINUX_CC_DEFINES__'
> echo '#define __LINUX_CC_DEFINES__'
> $(CC) $(c_flags) -x c -E -Wp,-dM /dev/null | sort | \
> sed -nr -e 's/^#define __([^[:space]]+)__$/#define __KERNEL_CC_\1/p'
> echo '#endif

A lot of then aren't interesting and duplicate each other.
Another thing: clang. It detects machine I'm typing this as __corei7__
while gcc does it as __core_avx2__.