On Fri, Jul 31, 2015 at 10:09:57AM +0200, Christoph Hellwig wrote: > On Fri, Jul 31, 2015 at 12:55:06PM +1000, Dave Chinner wrote: > > I made a small change to pull the creation of include/xfs out of > > include/Makefile and up into include/buildrules where it is done > > before running the install-headers rule on each header subdir, > > and that fixes it. i.e: > > Thanks, this looks sensible to me. > > > Now I've just got to work out which patch is breaking 'make deb'.... > > "packaging: rework dh_autoreconf invocation for deb builds" is the > culprit.. That goes away on a make distclean. What was wrong is that debian/buildrules manually builds programs for the installer packge (the udebs, IIUC) and so it runs the headers-install rules manually rather than through the top level make file. It needed to have a mkdir -p install/xfs added to it.... I've isolated all this to a patch that applies in front of you series, as it appears the problems aren't directly related to any of the changes you made - they just expose the problem. Patch below. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx build: create include/xfs before installing headers From: Dave Chinner <dchinner@xxxxxxxxxx> Currently the install-headers rule from include/Makefile creates include/xfs, but there is no guarantee that it will be the first directory that make executes that rule in. Hence other directories can race with the creation on include/xfs and fail. Move the creation of include/xfs to occur before running the install_headers rules on the subdirectories to avoid any possible races with creation. Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> --- debian/rules | 1 + include/Makefile | 5 +---- include/buildrules | 8 +++++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/debian/rules b/debian/rules index 27b043f..5526bbf 100755 --- a/debian/rules +++ b/debian/rules @@ -44,6 +44,7 @@ dibuild: @echo "== dpkg-buildpackage: installer" 1>&2 if [ ! -f mkfs/mkfs.xfs-$(bootpkg) ]; then \ $(diopts) $(MAKE) include/platform_defs.h; \ + mkdir -p include/xfs; \ for dir in include libxfs; do \ $(MAKE) -C $$dir NODEP=1 install-headers; \ done; \ diff --git a/include/Makefile b/include/Makefile index 91b33b0..01c886d 100644 --- a/include/Makefile +++ b/include/Makefile @@ -65,12 +65,9 @@ include $(BUILDRULES) # set up include/xfs header directory install-headers: $(addsuffix -hdrs, $(HFILES) $(QAHFILES) $(PHFILES) $(DKHFILES) $(LIBHFILES)) -%-hdrs: xfs +%-hdrs: $(Q)$(LN_S) -f $(PWD)/include/$* xfs/$* -xfs: - @mkdir -p xfs - install: default $(INSTALL) -m 755 -d $(PKG_INC_DIR) diff --git a/include/buildrules b/include/buildrules index 0e13f9d..5010895 100644 --- a/include/buildrules +++ b/include/buildrules @@ -14,10 +14,16 @@ clean clobber : $(addsuffix -clean,$(SUBDIRS)) $(Q)$(MAKE) $(MAKEOPTS) -C $* clean ifdef HDR_SUBDIRS +.PHONY: .xfs + headers: $(addsuffix -headers, $(HDR_SUBDIRS)) -%-headers: + +%-headers: .xfs @echo " [HEADERS] $*" $(Q)$(MAKE) $(MAKEOPTS) -C $* NODEP=1 install-headers + +.xfs: + @mkdir -p include/xfs endif # Never blow away subdirs _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs