[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: arm32 tools/flask build failure



On Tue, 15 Dec 2020, Stefano Stabellini wrote:
> Hi all,
> 
> I am building Xen tools for ARM32 using qemu-user. I am getting the
> following error building tools/flask. Everything else works fine. It is
> worth noting that make -j1 works fine, it is only make -j4 that fails.
> 
> I played with .NOTPARALLEL but couldn't get it to work. Anyone has any
> ideas?
> 
> Cheers,
> 
> Stefano
> 
> 
> make[2]: Leaving directory '/build/tools/flask/utils'
> make[1]: Leaving directory '/build/tools/flask'
> make[1]: Entering directory '/build/tools/flask'
> /usr/bin/make -C policy all
> make[2]: Entering directory '/build/tools/flask/policy'
> make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make 
> rule.
> /build/tools/flask/policy/Makefile.common:115: *** target pattern contains no 
> '%'.  Stop.
> make[2]: Leaving directory '/build/tools/flask/policy'
> make[1]: *** [/build/tools/flask/../../tools/Rules.mk:160: subdir-all-policy] 
> Error 2
> make[1]: Leaving directory '/build/tools/flask'
> make: *** [/build/tools/flask/../../tools/Rules.mk:155: subdirs-all] Error 2


The fix seems to be turning the problematic variable:

POLICY_FILENAME = $(FLASK_BUILD_DIR)/xenpolicy-$(shell $(MAKE) -C 
$(XEN_ROOT)/xen xenversion --no-print-directory)

into a rule.


diff --git a/tools/flask/policy/Makefile.common 
b/tools/flask/policy/Makefile.common
index bea5ba4b6a..9a086d8acd 100644
--- a/tools/flask/policy/Makefile.common
+++ b/tools/flask/policy/Makefile.common
@@ -35,7 +35,6 @@ OUTPUT_POLICY ?= $(BEST_POLICY_VER)
 #
 ########################################
 
-POLICY_FILENAME = $(FLASK_BUILD_DIR)/xenpolicy-$(shell $(MAKE) -C 
$(XEN_ROOT)/xen xenversion --no-print-directory)
 POLICY_LOADPATH = /boot
 
 # List of policy versions supported by the hypervisor
@@ -112,17 +111,19 @@ POLICY_SECTIONS += $(USERS)
 POLICY_SECTIONS += $(ALL_CONSTRAINTS)
 POLICY_SECTIONS += $(ISID_DEFS) $(DEV_OCONS)
 
-all: $(POLICY_FILENAME)
+policy:
 
-install: $(POLICY_FILENAME)
+all: policy
+
+install: policy
        $(INSTALL_DIR) $(DESTDIR)/$(POLICY_LOADPATH)
        $(INSTALL_DATA) $^ $(DESTDIR)/$(POLICY_LOADPATH)
 
 uninstall:
        rm -f $(DESTDIR)/$(POLICY_LOADPATH)/$(POLICY_FILENAME)
 
-$(POLICY_FILENAME): $(FLASK_BUILD_DIR)/policy.conf
-       $(CHECKPOLICY) $(CHECKPOLICY_PARAM) $^ -o $@
+policy: $(FLASK_BUILD_DIR)/policy.conf
+       $(CHECKPOLICY) $(CHECKPOLICY_PARAM) $^ -o xenpolicy-"$$($(MAKE) -C 
$(XEN_ROOT)/xen xenversion --no-print-directory)"
 
 $(FLASK_BUILD_DIR)/policy.conf: $(POLICY_SECTIONS) $(MOD_CONF)
        $(M4) $(M4PARAM) $(POLICY_SECTIONS) > $@



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.