x86/build: limit rebuilding of asm-offsets.h
authorJan Beulich <jbeulich@suse.com>
Tue, 5 Jan 2021 12:12:15 +0000 (13:12 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 5 Jan 2021 12:12:15 +0000 (13:12 +0100)
This file has a long dependencies list (through asm-offsets.[cs]) and a
long list of dependents. IOW if any of the former changes, all of the
latter will be rebuilt, even if there's no actual change to the
generated file. This is the primary scenario we have the move-if-changed
macro for.

Since debug information may easily cause the file contents to change in
benign ways, also avoid emitting this into the output file.

Finally already before this change *.new files needed including in what
gets removed by the "clean" target.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
xen/arch/x86/Makefile

index 863aed043f8a8a40430142f51f4691e1563b532f..7f4f5ed96ffd7f63366498e51456e1409a2845d9 100644 (file)
@@ -241,7 +241,8 @@ efi/buildid.o efi/relocs-dummy.o: $(BASEDIR)/arch/x86/efi/built_in.o
 efi/buildid.o efi/relocs-dummy.o: ;
 
 asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c $(BASEDIR)/include/asm-x86/asm-macros.h
-       $(CC) $(filter-out -Wa$(comma)% -flto,$(c_flags)) -S -o $@ $<
+       $(CC) $(filter-out -Wa$(comma)% -flto,$(c_flags)) -S -g0 -o $@.new $<
+       $(call move-if-changed,$@.new,$@)
 
 asm-macros.i: CFLAGS-y += -D__ASSEMBLY__ -P
 
@@ -268,7 +269,7 @@ efi/mkreloc: efi/mkreloc.c
 
 .PHONY: clean
 clean::
-       rm -f asm-offsets.s *.lds boot/*.o boot/*~ boot/core boot/mkelf32
+       rm -f asm-offsets.s *.lds *.new boot/*.o boot/*~ boot/core boot/mkelf32
        rm -f asm-macros.i $(BASEDIR)/include/asm-x86/asm-macros.*
        rm -f $(BASEDIR)/.xen-syms.[0-9]* boot/.*.d $(BASEDIR)/.xen.elf32
        rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/mkreloc