build: avoid building arm/arm/*/head.o twice
authorAnthony PERARD <anthony.perard@citrix.com>
Tue, 12 Oct 2021 09:53:47 +0000 (11:53 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 12 Oct 2021 09:53:47 +0000 (11:53 +0200)
head.o is been built twice, once because it is in $(ALL_OBJS) and a
second time because it is in $(extra-y) and thus it is rebuilt when
building "arch/arm/built_in.o".

Fix this by adding a dependency of "head.o" on the directory
"arch/arm/".

Also, we should avoid building object that are in subdirectories, so
move the declaration in there. This doesn't change anything as
"arch/arm/built_in.o" depends on "arch/arm/$subarch/built_in.o" which
depends on $(extra-y), so we still need to depend on
"arch/arm/built_in.o".

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Julien Grall <jgrall@amazon.com>
xen/arch/arm/Makefile
xen/arch/arm/arm32/Makefile
xen/arch/arm/arm64/Makefile

index 7dd3ee981a5fa5bb62974e274e9d9f28a86e4e99..64518848b2b5224dbaab4e788b04596304c8eb8b 100644 (file)
@@ -65,7 +65,6 @@ obj-$(CONFIG_SBSA_VUART_CONSOLE) += vpl011.o
 obj-y += vsmc.o
 obj-y += vpsci.o
 obj-y += vuart.o
-extra-y += $(TARGET_SUBARCH)/head.o
 
 #obj-bin-y += ....o
 
@@ -75,6 +74,12 @@ endif
 
 ALL_OBJS := $(TARGET_SUBARCH)/head.o $(ALL_OBJS)
 
+# head.o is built by descending into the sub-directory, depends on the part of
+# $(ALL_OBJS) that will eventually recurse into $(TARGET_SUBARCH)/ and build
+# head.o
+$(TARGET_SUBARCH)/head.o: $(BASEDIR)/arch/arm/built_in.o
+$(TARGET_SUBARCH)/head.o: ;
+
 ifdef CONFIG_LIVEPATCH
 all_symbols = --all-symbols
 ifdef CONFIG_FAST_SYMBOL_LOOKUP
index 96105d238307dd209ef6dd6863c7bb1ed3597378..3040eabce3ad246bce4476e5fda38debf3be92c8 100644 (file)
@@ -11,3 +11,4 @@ obj-y += smpboot.o
 obj-y += traps.o
 obj-y += vfp.o
 
+extra-y += head.o
index 701d66883d664887044cdb6548b7f6658f7ee3ca..baa87655fad03258496c32ce95066821d36413af 100644 (file)
@@ -14,3 +14,5 @@ obj-y += smpboot.o
 obj-y += traps.o
 obj-y += vfp.o
 obj-y += vsysreg.o
+
+extra-y += head.o