[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