On 2018-09-18 23:28, Nadav Amit wrote: > diff --git a/arch/x86/Makefile b/arch/x86/Makefile > index 8f6e7eb8ae9f..944fa3bc9376 100644 > --- a/arch/x86/Makefile > +++ b/arch/x86/Makefile > @@ -214,8 +214,8 @@ ifdef CONFIG_X86_64 > KBUILD_LDFLAGS += $(call ld-option, -z max-page-size=0x200000) > endif > > -# Speed up the build > -KBUILD_CFLAGS += -pipe > +# We cannot use -pipe flag since we give an additional .s file to the compiler > +#KBUILD_CFLAGS += -pipe Is this really necessary? The gas manual says that one can use -- to name stdin, though that's probably a typo and should just be - . Doing gcc -pipe -Wa,foo.s -Wa,- does seem to work as expected (and would also make it possible to append some .s file should that ever be required). > > +archmacros: > + $(Q)$(MAKE) $(build)=arch/x86/kernel arch/x86/kernel/macros.s > + > +ASM_MACRO_FLAGS = -Wa,arch/x86/kernel/macros.s > +export ASM_MACRO_FLAGS > +KBUILD_CFLAGS += $(ASM_MACRO_FLAGS) How does this affect what gets rebuilt when one of the asm/foo.h files going into macros.s changes? Does that cause a global rebuild because everything depends on macros.s, or do we still only rebuild the files that actually include asm/foo.h? Rasmus