[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] common: make sure symbols-dummy.o gets rebuilt when needed
The per-arch top level make files don't record any dependencies for the file, so its mere existence is enough for make to consider it up-to- date. As of ab3e5f5ff9 ("xsplice, symbols: Implement fast symbol names -> virtual addresses lookup") the file, however, depends on the FAST_SYMBOL_LOOKUP config option, which may change between incremental re-builds. Use the $(extra-y) machinery to get the file built without an extra recursion step into common/, but instead right when the other things in that directory get built. Take the opportunity and also make the gendep invocation cover both $(obj-bin-y) and $(extra-y), even if this is not directly related here. I should have included them right away in 8b6ef9c152 ("compat: enforce distinguishable file names in symbol table"). Reported-by: Wei Liu <wei.liu2@xxxxxxxxxx> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -110,7 +110,7 @@ define gendep DEPS += $(dir $(1)).$(notdir $(1)).d endif endef -$(foreach o,$(filter-out %/,$(obj-y)),$(eval $(call gendep,$(o)))) +$(foreach o,$(filter-out %/,$(obj-y) $(obj-bin-y) $(extra-y)),$(eval $(call gendep,$(o)))) # Ensure each subdirectory has exactly one trailing slash. subdir-n := $(patsubst %,%/,$(patsubst %/,%,$(subdir-n) $(subdir-))) @@ -158,24 +158,27 @@ endif # Always build obj-bin files as binary even if they come from C source. $(obj-bin-y): CFLAGS := $(filter-out -flto,$(CFLAGS)) -built_in.o: $(obj-y) +built_in.o: $(obj-y) extra ifeq ($(obj-y),) $(CC) $(CFLAGS) -c -x c /dev/null -o $@ else ifeq ($(CONFIG_LTO),y) - $(LD_LTO) -r -o $@ $^ + $(LD_LTO) -r -o $@ $(filter-out extra,$^) else - $(LD) $(LDFLAGS) -r -o $@ $^ + $(LD) $(LDFLAGS) -r -o $@ $(filter-out extra,$^) endif endif -built_in_bin.o: $(obj-bin-y) +built_in_bin.o: $(obj-bin-y) extra ifeq ($(obj-bin-y),) $(CC) $(AFLAGS) -c -x assembler /dev/null -o $@ else - $(LD) $(LDFLAGS) -r -o $@ $^ + $(LD) $(LDFLAGS) -r -o $@ $(filter-out extra,$^) endif +.PHONY: extra +extra: $(extra-y) + # Force execution of pattern rules (for which PHONY cannot be directly used). .PHONY: FORCE FORCE: --- a/xen/arch/arm/Makefile +++ b/xen/arch/arm/Makefile @@ -100,9 +100,6 @@ prelink.o: $(ALL_OBJS) $(LD) $(LDFLAGS) -r -o $@ $^ endif -$(BASEDIR)/common/symbols-dummy.o: - $(MAKE) -f $(BASEDIR)/Rules.mk -C $(BASEDIR)/common symbols-dummy.o - $(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o $(LD) $(LDFLAGS) -T xen.lds -N prelink.o \ $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0 --- a/xen/arch/x86/Makefile +++ b/xen/arch/x86/Makefile @@ -127,9 +127,6 @@ prelink-efi.o: $(ALL_OBJS) efi/boot.init $(guard) $(LD) $(LDFLAGS) -r -o $@ $(filter-out %/efi/built_in.o,$^) endif -$(BASEDIR)/common/symbols-dummy.o: - $(MAKE) -f $(BASEDIR)/Rules.mk -C $(BASEDIR)/common symbols-dummy.o - $(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o $(LD) $(LDFLAGS) -T xen.lds -N prelink.o $(build_id_linker) \ $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0 --- a/xen/common/Makefile +++ b/xen/common/Makefile @@ -75,6 +75,8 @@ tmem-y := tmem.o tmem_xen.o tmem_control tmem-$(CONFIG_COMPAT) += compat/tmem_xen.o obj-$(CONFIG_TMEM) += $(tmem-y) +extra-y := symbols-dummy.o + subdir-$(CONFIG_COVERAGE) += coverage subdir-$(CONFIG_UBSAN) += ubsan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |