|
[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 |