[Xen-devel] [PATCH] x86/shim: Fix parallel build following c/s 32b1d62887d0

Andrew Cooper posted 1 patch 4 years, 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/xen tags/patchew/20190805135335.7812-1-andrew.cooper3@citrix.com
tools/firmware/xen-dir/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Xen-devel] [PATCH] x86/shim: Fix parallel build following c/s 32b1d62887d0
Posted by Andrew Cooper 4 years, 8 months ago
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
Re: [Xen-devel] [PATCH] x86/shim: Fix parallel build following c/s 32b1d62887d0
Posted by Jan Beulich 4 years, 8 months ago
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
Re: [Xen-devel] [PATCH] x86/shim: Fix parallel build following c/s 32b1d62887d0
Posted by Andrew Cooper 4 years, 8 months ago
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