On 12/8/17, H. Peter Anvin <h...@zytor.com> 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__.