|
@@ -0,0 +1,40 @@
|
|
|
+tokens: fix parallel builds
|
|
|
+
|
|
|
+Currently, tokens.h and token_vars.h are each generated by a call to
|
|
|
+mktokens, which means mktokens is called twice.
|
|
|
+
|
|
|
+But mktokens generates both in a single run.
|
|
|
+
|
|
|
+This means that, with a fast-enough machine, the call to mktokens that
|
|
|
+generates tokens.h may finish before the call that generates
|
|
|
+token_vars.h. Then tokens.h is transiently incomplete (it can even be
|
|
|
+empty). By the time it is fully generated in the second run, a compile
|
|
|
+job that ends up using token.h may have already started, and the source
|
|
|
+file would include an in complete token.h and would be missing some
|
|
|
+token definitions.
|
|
|
+
|
|
|
+We fix that by making token.h a dependency of token_vars.h, with a
|
|
|
+dummy recipe (to force it not being PHONY). The actual recipe is for
|
|
|
+token_vars.h
|
|
|
+
|
|
|
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
|
|
+
|
|
|
+diff -durN dash-0.5.8.orig/src/Makefile.am dash-0.5.8/src/Makefile.am
|
|
|
+--- dash-0.5.8.orig/src/Makefile.am 2014-09-28 10:19:32.000000000 +0200
|
|
|
++++ dash-0.5.8/src/Makefile.am 2017-03-07 09:53:28.579811603 +0100
|
|
|
+@@ -45,7 +45,14 @@
|
|
|
+ mktokens mkbuiltins builtins.def.in mkinit.c \
|
|
|
+ mknodes.c nodetypes nodes.c.pat mksyntax.c mksignames.c
|
|
|
+
|
|
|
+-token.h token_vars.h: mktokens
|
|
|
++# Both token.h and token_vars.h are generated by a single call
|
|
|
++# to mktokens. However, token.h is the only file that is used
|
|
|
++# as a dependency, so we must ensure token_vars.h is generated
|
|
|
++# first.
|
|
|
++token.h: token_vars.h
|
|
|
++ @:
|
|
|
++
|
|
|
++token_vars.h: mktokens
|
|
|
+ sh $^
|
|
|
+
|
|
|
+ builtins.def: builtins.def.in $(top_builddir)/config.h
|