mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-11 13:49:23 -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
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; 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.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -79,6 +79,14 @@ (define* (parallel-job-count #:optional (flags (getenv "MAKEFLAGS")))
|
||||||
(current-processor-count))))
|
(current-processor-count))))
|
||||||
(loop tail)))))))))
|
(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)
|
(define (% completed total)
|
||||||
"Return the completion percentage of COMPLETED over TOTAL as an integer."
|
"Return the completion percentage of COMPLETED over TOTAL as an integer."
|
||||||
(inexact->exact (round (* 100. (/ completed total)))))
|
(inexact->exact (round (* 100. (/ completed total)))))
|
||||||
|
@ -95,7 +103,7 @@ (define (% completed total)
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(compile-files srcdir (getcwd)
|
(compile-files srcdir (getcwd)
|
||||||
(filter file-needs-compilation? files)
|
(filter file-needs-compilation? files)
|
||||||
#:workers (parallel-job-count)
|
#:workers (parallel-job-count*)
|
||||||
#:host host
|
#:host host
|
||||||
#:report-load (lambda (file total completed)
|
#:report-load (lambda (file total completed)
|
||||||
(when file
|
(when file
|
||||||
|
|
Loading…
Reference in a new issue