[v2] timezone: fix parallel check failures

Message ID 1442601202-21467-1-git-send-email-vapier@gentoo.org
State Committed
Delegated to: Mike Frysinger
Headers

Commit Message

Mike Frysinger Sept. 18, 2015, 6:33 p.m. UTC
  The XT testdata install rules expect the testdata dir to already exist in
the build tree, but it doesn't actually create it.  Instead, it relies on
the build-testdata define happening to be executed before it (which runs
zic which creates the dir).  When we run in parallel though, it's easy to
hit a failure:
$ cd timezone
$ rm -rf $objdir/timezone/testdata
$ make check -j
...
cp testdata/XT1 .../timezone/testdata/XT1
cp: cannot create regular file '.../timezone/testdata/XT1': No such file or directory
Makefile:116: recipe for target '.../timezone/testdata/XT1' failed
make: *** [.../timezone/testdata/XT1] Error 1
make: *** Waiting for unfinished jobs....

2015-09-18  Mike Frysinger  <vapier@gentoo.org>

	* timezone/Makefile ($(testdata)/XT%): Call $(make-target-directory).
---
v2
	- use existing make-target-directory helper pointed out by Roland

 timezone/Makefile | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Roland McGrath Sept. 18, 2015, 7:52 p.m. UTC | #1
Looks fine.
  

Patch

diff --git a/timezone/Makefile b/timezone/Makefile
index 81d4a3e..bfb3463 100644
--- a/timezone/Makefile
+++ b/timezone/Makefile
@@ -113,6 +113,7 @@  $(testdata)/Asia/Tokyo: asia $(zic-deps)
 	$(build-testdata)
 
 $(testdata)/XT%: testdata/XT%
+	$(make-target-directory)
 	cp $< $@
 
 $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make