summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-04-12 00:00:59 +0200
committerLudovic Courtès <ludo@gnu.org>2020-04-12 00:00:59 +0200
commit27a1e4fd109f6df9f687958cfead0d3e41e330aa (patch)
tree74251b4bd1298e84856d807723001b6c54a4ca0c
parentf4ec5e1a9823a66c27fe2bc033db7b58b29edfef (diff)
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.scm12
1 files changed, 10 insertions, 2 deletions
diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm
index e9f3e957d9d..ad75e33a854 100644
--- a/build-aux/compile-all.scm
+++ b/build-aux/compile-all.scm
@@ -1,6 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> 2;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
3;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> 3;;; Copyright © 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4;;; 4;;;
5;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
6;;; 6;;;
@@ -79,6 +79,14 @@ to 'make'."
79 (current-processor-count)))) 79 (current-processor-count))))
80 (loop tail))))))))) 80 (loop tail)))))))))
81 81
82(define (parallel-job-count*)
83 ;; XXX: Work around memory requirements not sustainable on i686 above '-j4'
84 ;; or so: <https://bugs.gnu.org/40522>.
85 (let ((count (parallel-job-count)))
86 (if (string-prefix? "i686" %host-type)
87 (min count 4)
88 count)))
89
82(define (% completed total) 90(define (% completed total)
83 "Return the completion percentage of COMPLETED over TOTAL as an integer." 91 "Return the completion percentage of COMPLETED over TOTAL as an integer."
84 (inexact->exact (round (* 100. (/ completed total))))) 92 (inexact->exact (round (* 100. (/ completed total)))))
@@ -95,7 +103,7 @@ to 'make'."
95 (lambda () 103 (lambda ()
96 (compile-files srcdir (getcwd) 104 (compile-files srcdir (getcwd)
97 (filter file-needs-compilation? files) 105 (filter file-needs-compilation? files)
98 #:workers (parallel-job-count) 106 #:workers (parallel-job-count*)
99 #:host host 107 #:host host
100 #:report-load (lambda (file total completed) 108 #:report-load (lambda (file total completed)
101 (when file 109 (when file