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) | |
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 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 |
