Unfortunately, a parallel build from clean can fail in the following manner:
xen.git$ make -j4 -C tools/firmware/xen-dir/
make: Entering directory '/local/xen.git/tools/firmware/xen-dir'
mkdir -p xen-root
make: *** No rule to make target 'xen-root/xen/arch/x86/configs/pvshim_defconfig', needed by 'xen-root/xen/.config'. Stop.
make: *** Waiting for unfinished jobs....
The rule for pvshim_defconfig also need to depend on the linkfarm being
established first.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Wei Liu <wl@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
tools/firmware/xen-dir/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/firmware/xen-dir/Makefile b/tools/firmware/xen-dir/Makefile
index 7435421251..6ed0cb6888 100644
--- a/tools/firmware/xen-dir/Makefile
+++ b/tools/firmware/xen-dir/Makefile
@@ -38,7 +38,7 @@ linkfarm.stamp: $(DEP_DIRS) $(DEP_FILES) FORCE
}
# Copy enough of the tree to build the shim hypervisor
-$(D): linkfarm.stamp
+$(D) $(D)/xen/arch/x86/configs/pvshim_defconfig: linkfarm.stamp
$(MAKE) -C $(D)/xen distclean
$(D)/xen/.config: $(D) $(D)/xen/arch/x86/configs/pvshim_defconfig
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
On 05.08.2019 15:53, Andrew Cooper wrote: > --- a/tools/firmware/xen-dir/Makefile > +++ b/tools/firmware/xen-dir/Makefile > @@ -38,7 +38,7 @@ linkfarm.stamp: $(DEP_DIRS) $(DEP_FILES) FORCE > } > > # Copy enough of the tree to build the shim hypervisor > -$(D): linkfarm.stamp > +$(D) $(D)/xen/arch/x86/configs/pvshim_defconfig: linkfarm.stamp > $(MAKE) -C $(D)/xen distclean > > $(D)/xen/.config: $(D) $(D)/xen/arch/x86/configs/pvshim_defconfig But this then allows two instances of "$(MAKE) -C $(D)/xen distclean" to run in parallel - not sure how well that would work. I think what we want instead is $(D): linkfarm.stamp $(MAKE) -C $(D)/xen distclean $(D)/xen/arch/x86/configs/pvshim_defconfig: $(D) $(D)/xen/.config: $(D)/xen/arch/x86/configs/pvshim_defconfig ... Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
On 05/08/2019 17:06, Jan Beulich wrote: > On 05.08.2019 15:53, Andrew Cooper wrote: >> --- a/tools/firmware/xen-dir/Makefile >> +++ b/tools/firmware/xen-dir/Makefile >> @@ -38,7 +38,7 @@ linkfarm.stamp: $(DEP_DIRS) $(DEP_FILES) FORCE >> } >> >> # Copy enough of the tree to build the shim hypervisor >> -$(D): linkfarm.stamp >> +$(D) $(D)/xen/arch/x86/configs/pvshim_defconfig: linkfarm.stamp >> $(MAKE) -C $(D)/xen distclean >> >> $(D)/xen/.config: $(D) $(D)/xen/arch/x86/configs/pvshim_defconfig > But this then allows two instances of "$(MAKE) -C $(D)/xen distclean" > to run in parallel - not sure how well that would work. I think what > we want instead is > > $(D): linkfarm.stamp > $(MAKE) -C $(D)/xen distclean > > $(D)/xen/arch/x86/configs/pvshim_defconfig: $(D) > > $(D)/xen/.config: $(D)/xen/arch/x86/configs/pvshim_defconfig That also seems to work. Overall change is diff --git a/tools/firmware/xen-dir/Makefile b/tools/firmware/xen-dir/Makefile index 7435421251..697bbbd57b 100644 --- a/tools/firmware/xen-dir/Makefile +++ b/tools/firmware/xen-dir/Makefile @@ -41,7 +41,9 @@ linkfarm.stamp: $(DEP_DIRS) $(DEP_FILES) FORCE $(D): linkfarm.stamp $(MAKE) -C $(D)/xen distclean -$(D)/xen/.config: $(D) $(D)/xen/arch/x86/configs/pvshim_defconfig +$(D)/xen/arch/x86/configs/pvshim_defconfig: $(D) + +$(D)/xen/.config: $(D)/xen/arch/x86/configs/pvshim_defconfig $(MAKE) -C $(@D) KBUILD_DEFCONFIG=pvshim_defconfig XEN_CONFIG_EXPERT=y defconfig xen-shim: $(D)/xen/.config ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
© 2016 - 2024 Red Hat, Inc.