diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-04-12 00:00:59 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-04-12 00:00:59 +0200 |
commit | 27a1e4fd109f6df9f687958cfead0d3e41e330aa (patch) | |
tree | 74251b4bd1298e84856d807723001b6c54a4ca0c | |
parent | f4ec5e1a9823a66c27fe2bc033db7b58b29edfef (diff) | |
download | guix-27a1e4fd109f6df9f687958cfead0d3e41e330aa.tar.gz |
build: Cap build parallelism on i686.
Works around <https://bugs.gnu.org/40522>. * build-aux/compile-all.scm (parallel-job-count*): New procedure. <top level>: Use it instead of 'parallel-job-count'.
-rw-r--r-- | build-aux/compile-all.scm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index e9f3e957d9..ad75e33a85 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> -;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -79,6 +79,14 @@ to 'make'." (current-processor-count)))) (loop tail))))))))) +(define (parallel-job-count*) + ;; XXX: Work around memory requirements not sustainable on i686 above '-j4' + ;; or so: <https://bugs.gnu.org/40522>. + (let ((count (parallel-job-count))) + (if (string-prefix? "i686" %host-type) + (min count 4) + count))) + (define (% completed total) "Return the completion percentage of COMPLETED over TOTAL as an integer." (inexact->exact (round (* 100. (/ completed total))))) @@ -95,7 +103,7 @@ to 'make'." (lambda () (compile-files srcdir (getcwd) (filter file-needs-compilation? files) - #:workers (parallel-job-count) + #:workers (parallel-job-count*) #:host host #:report-load (lambda (file total completed) (when file |