From 298264da86955277e1f392cc16bbbe6c416d995f Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Fri, 16 Jun 2017 12:36:48 -0400 Subject: Pass GNU Make jobserver on to the ci jobs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Solution found by reading the question [Is it possible to “pass-through” GNU make jobserver environment to a submake served via a 3rd-party (non-make)](https://stackoverflow.com/q/29910944/377022). This, I hope, will fix errors such as ``` make[2]: *** write jobserver: Bad file descriptor. Stop. make[2]: *** Waiting for unfinished jobs.... make[2]: *** write jobserver: Bad file descriptor. Stop. make[1]: *** [coqprime] Error 2 make[1]: INTERNAL: Exiting with 1 jobserver tokens available; should be 2! make[1]: Leaving directory `/home/travis/build/JasonGross/coq/_build_ci/fiat-c ``` which result from having a top-level `make` which sets up the jobserver (via `-jN`), which invokes a non-makefile script *without passing on the file descriptors for the jobserver*, which either invokes a makefile script without `-jN` or invokes a makefile script with `-jN` which itself invokes a submake without `-jN`. This was the case, for example, in fiat-crypto. --- Makefile.ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Makefile.ci') diff --git a/Makefile.ci b/Makefile.ci index 013685218..e778fe919 100644 --- a/Makefile.ci +++ b/Makefile.ci @@ -7,4 +7,4 @@ CI_TARGETS=ci-all ci-hott ci-math-comp ci-compcert ci-sf ci-cpdt \ # Generic rule, we use make to easy travis integraton with mixed rules $(CI_TARGETS): ci-%: - ./dev/ci/ci-$*.sh + +./dev/ci/ci-$*.sh -- cgit v1.2.3