[Ecls-list] Non-parallel build "patch"
Bruce-Robert Fenn Pocock
brpocock at star-hope.org
Wed Feb 11 22:04:51 UTC 2015
>From #lisp today:
taylanub 4:45:25 PM
looks like the problem was that Guix runs make with -j set to >1 by
default, and the Makefile isn't written with parallelism taken into count.
adding --jobs=1 to make arguments in the package recipe fixed the issue :)
I should probably send in a bug report to ECL
isn't ecl unmaintained now
ugh, there's already a bug report for this issue anyway
oh but that's from 2009 and supposedly closed, so it must have been
reintroduced
oh, closed because "We do not support parallel builds of ECL."
wonder if a Makefile can't declare that limitation?.. w/e
A check of the Gnu Make manual finds:
You can inhibit parallelism in a particular makefile with the
`.NOTPARALLEL' pseudo-target
…
`.NOTPARALLEL'
If `.NOTPARALLEL' is mentioned as a target, then this invocation
of `make' will be run serially, even if the `-j' option is given.
Any recursively invoked `make' command will still run recipes in
parallel (unless its makefile also contains this target). Any
prerequisites on this target are ignored.
The below seems to save us from default-to-parallel makes.
diff --git a/Makefile.in b/Makefile.in
index 3dbba5d..318f35d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -70,6 +70,9 @@ all: build/Makefile
cd build; $(MAKE)
.PHONY: all
+# We do not survive parallel builds reliably.
+.NOTPARALLEL
+
Makefile: Makefile.in build/config.status
(cd build; ./config.status)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20150211/6f49b16d/attachment.html>
More information about the ecl-devel
mailing list