[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v5 2/5] build: filter out command line assembler arguments
If the assembler is not used. This happens when using cc -E or cc -S for example. GCC will just ignore the -Wa,... when the assembler is not called, but clang will complain loudly and fail. Also enable passing -Wa,-I$(BASEDIR)/include to clang now that it's safe to do so. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: George Dunlap <George.Dunlap@xxxxxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> --- Changes since v4: - Also add the filter to the tree rules near the end of xen/Rules.mk. Changes since v3: - Filter using '-Wa,%' instead of '-Wa%' so that -Wall is not matched. - Pass -Wa,-I$(BASEDIR)/include to clang also. --- xen/Rules.mk | 6 +++--- xen/arch/x86/Makefile | 6 +++--- xen/arch/x86/Rules.mk | 5 +---- xen/include/Makefile | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/xen/Rules.mk b/xen/Rules.mk index da3c35ba36..2918019b92 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -208,13 +208,13 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): %.init.o: %.o Makefile $(OBJCOPY) $(foreach s,$(SPECIAL_DATA_SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@ %.i: %.c Makefile - $(CPP) $(CFLAGS) $< -o $@ + $(CPP) $(filter-out -Wa$(comma)%,$(CFLAGS)) $< -o $@ %.s: %.c Makefile - $(CC) $(CFLAGS) -S $< -o $@ + $(CC) $(filter-out -Wa$(comma)%,$(CFLAGS)) -S $< -o $@ # -std=gnu{89,99} gets confused by # as an end-of-line comment marker %.s: %.S Makefile - $(CPP) $(AFLAGS) $< -o $@ + $(CPP) $(filter-out -Wa$(comma)%,$(AFLAGS)) $< -o $@ -include $(DEPS_INCLUDE) diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile index d903b7abb9..389096139c 100644 --- a/xen/arch/x86/Makefile +++ b/xen/arch/x86/Makefile @@ -215,15 +215,15 @@ efi/boot.init.o efi/runtime.o efi/compat.o efi/buildid.o: $(BASEDIR)/arch/x86/ef efi/boot.init.o efi/runtime.o efi/compat.o efi/buildid.o: ; asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c - $(CC) $(filter-out -flto,$(CFLAGS)) -S -o $@ $< + $(CC) $(filter-out -Wa$(comma)% -flto,$(CFLAGS)) -S -o $@ $< xen.lds: xen.lds.S - $(CC) -P -E -Ui386 $(AFLAGS) -o $@ $< + $(CC) -P -E -Ui386 $(filter-out -Wa$(comma)%,$(AFLAGS)) -o $@ $< sed -e 's/xen\.lds\.o:/xen\.lds:/g' <.xen.lds.d >.xen.lds.d.new mv -f .xen.lds.d.new .xen.lds.d efi.lds: xen.lds.S - $(CC) -P -E -Ui386 -DEFI $(AFLAGS) -o $@ $< + $(CC) -P -E -Ui386 -DEFI $(filter-out -Wa$(comma)%,$(AFLAGS)) -o $@ $< sed -e 's/efi\.lds\.o:/efi\.lds:/g' <.$(@F).d >.$(@F).d.new mv -f .$(@F).d.new .$(@F).d diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk index 56b2ea8356..1dc5c3785a 100644 --- a/xen/arch/x86/Rules.mk +++ b/xen/arch/x86/Rules.mk @@ -42,8 +42,5 @@ CFLAGS += -DCONFIG_INDIRECT_THUNK export CONFIG_INDIRECT_THUNK=y endif -# Set up the assembler include path properly for older GCC toolchains. Clang -# objects to the agument being passed however. -ifneq ($(clang),y) +# Set up the assembler include path properly for older toolchains. CFLAGS += -Wa,-I$(BASEDIR)/include -endif diff --git a/xen/include/Makefile b/xen/include/Makefile index 19066a33a0..69052ade24 100644 --- a/xen/include/Makefile +++ b/xen/include/Makefile @@ -65,7 +65,7 @@ compat/%.h: compat/%.i Makefile $(BASEDIR)/tools/compat-build-header.py mv -f $@.new $@ compat/%.i: compat/%.c Makefile - $(CPP) $(filter-out -M% %.d -include %/include/xen/config.h,$(CFLAGS)) $(cppflags-y) -o $@ $< + $(CPP) $(filter-out -Wa$(comma)% -M% %.d -include %/include/xen/config.h,$(CFLAGS)) $(cppflags-y) -o $@ $< compat/%.c: public/%.h xlat.lst Makefile $(BASEDIR)/tools/compat-build-source.py mkdir -p $(@D) -- 2.16.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |