[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-4.9 v2] build: stubdom and tools should depend on public header target
Build can fail if stubdom build is run before tools build because: 1. tools/include build uses relative path and depends on XEN_OS 2. stubdom needs tools/include to be built, at which time XEN_OS is mini-os and corresponding symlinks are created 3. libraries inside tools needs tools/include to be built, at which time XEN_OS is the host os name, but symlinks won't be created because they are already there 4. libraries get the wrong headers and fail to build Since both tools and stubdom build need the public headers, we build tools/include before stubdom and tools. Remove runes in stubdom and tools to avoid building tools/include more than once. Provide a new dist target for tools/include. Hook up the install, clean, dist and distclean targets for tools/include. The new arrangement ensures tools build gets the correct headers because XEN_OS is set to host os when building tools/include. As for stubdom, it explicitly links to the mini-os directory without relying on XEN_OS so it should fine. Reported-by: Steven Haigh <netwiz@xxxxxxxxx> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- Cc: Steven Haigh <netwiz@xxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> Cc: Julien Grall <Julien.Grall@xxxxxxx> --- Makefile | 14 +++++++++++--- stubdom/Makefile | 1 - tools/Makefile | 3 +-- tools/include/Makefile | 2 ++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 084588e11e..3e1e065537 100644 --- a/Makefile +++ b/Makefile @@ -38,9 +38,14 @@ mini-os-dir-force-update: mini-os-dir export XEN_TARGET_ARCH export DESTDIR +.PHONY: build-tools-public-headers +build-tools-public-headers: + $(MAKE) -C tools/include + # build and install everything into the standard system directories .PHONY: install install: $(TARGS_INSTALL) + $(MAKE) -C tools/include install .PHONY: build build: $(TARGS_BUILD) @@ -50,11 +55,11 @@ build-xen: $(MAKE) -C xen build .PHONY: build-tools -build-tools: +build-tools: build-tools-public-headers $(MAKE) -C tools build .PHONY: build-stubdom -build-stubdom: mini-os-dir +build-stubdom: mini-os-dir build-tools-public-headers $(MAKE) -C stubdom build ifeq (x86_64,$(XEN_TARGET_ARCH)) XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom pv-grub @@ -75,6 +80,7 @@ test: .PHONY: dist dist: DESTDIR=$(DISTDIR)/install dist: $(TARGS_DIST) dist-misc + make -C tools/include dist dist-misc: $(INSTALL_DIR) $(DISTDIR)/ @@ -101,7 +107,7 @@ install-tools: $(MAKE) -C tools install .PHONY: install-stubdom -install-stubdom: mini-os-dir +install-stubdom: mini-os-dir build-tools-public-headers $(MAKE) -C stubdom install ifeq (x86_64,$(XEN_TARGET_ARCH)) XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub @@ -168,6 +174,7 @@ src-tarball: subtree-force-update-all .PHONY: clean clean: $(TARGS_CLEAN) + $(MAKE) -C tools/include clean .PHONY: clean-xen clean-xen: @@ -191,6 +198,7 @@ clean-docs: # clean, but blow away tarballs .PHONY: distclean distclean: $(TARGS_DISTCLEAN) + $(MAKE) -C tools/include distclean rm -f config/Toplevel.mk rm -rf dist rm -rf config.log config.status config.cache autom4te.cache diff --git a/stubdom/Makefile b/stubdom/Makefile index aef705dd1e..db01827070 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -355,7 +355,6 @@ LINK_DIRS := libxc-$(XEN_TARGET_ARCH) xenstore $(foreach dir,$(LINK_LIBS_DIRS),l LINK_STAMPS := $(foreach dir,$(LINK_DIRS),$(dir)/stamp) mk-headers-$(XEN_TARGET_ARCH): $(IOEMU_LINKFARM_TARGET) $(LINK_STAMPS) - $(MAKE) -C $(XEN_ROOT)/tools/include mkdir -p include/xen && \ ln -sf $(wildcard $(XEN_ROOT)/xen/include/public/*.h) include/xen && \ ln -sf $(addprefix $(XEN_ROOT)/xen/include/public/,arch-x86 hvm io xsm) include/xen && \ diff --git a/tools/Makefile b/tools/Makefile index 1396d95b50..496428e3a9 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -5,7 +5,6 @@ export PKG_CONFIG_DIR = $(CURDIR)/pkg-config include $(XEN_ROOT)/tools/Rules.mk SUBDIRS-y := -SUBDIRS-y += include SUBDIRS-y += libs SUBDIRS-y += libxc SUBDIRS-y += flask @@ -50,7 +49,7 @@ SUBDIRS-$(OCAML_TOOLS) += ocaml endif ifeq ($(CONFIG_RUMP),y) -SUBDIRS-y := include libxc xenstore +SUBDIRS-y := libxc xenstore endif # For the sake of linking, set the sys-root diff --git a/tools/include/Makefile b/tools/include/Makefile index f1af91c129..98b479f6a3 100644 --- a/tools/include/Makefile +++ b/tools/include/Makefile @@ -63,6 +63,8 @@ clean: rm -rf xen xen-xsm acpi $(MAKE) -C xen-foreign clean +.PHONY: dist +dist: install .PHONY: distclean distclean: clean -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |