mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
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'.
This commit is contained in:
parent
f4ec5e1a98
commit
27a1e4fd10
1 changed files with 10 additions and 2 deletions
|
@ -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 @@ (define* (parallel-job-count #:optional (flags (getenv "MAKEFLAGS")))
|
|||
(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 @@ (define (% completed total)
|
|||
(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
|
||||
|
|
Loading…
Reference in a new issue