compile: Run the load phase within 'with-target'.

* guix/build/compile.scm (compile-files)[build]: Remove 'with-target'.
Wrap body in 'with-target'.
This commit is contained in:
Ludovic Courtès 2020-04-07 23:48:54 +02:00
parent 93add9bf7d
commit 041c3c22dc
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -184,36 +184,35 @@ files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"."
;; Exit as soon as something goes wrong. ;; Exit as soon as something goes wrong.
(exit-on-exception (exit-on-exception
file file
(with-target host
(lambda ()
(let ((relative (relative-file source-directory file))) (let ((relative (relative-file source-directory file)))
(compile-file file (compile-file file
#:output-file (string-append build-directory "/" #:output-file (string-append build-directory "/"
(scm->go relative)) (scm->go relative))
#:opts (append warning-options #:opts (append warning-options
(optimization-options relative)))))))) (optimization-options relative))))))
(with-augmented-search-path %load-path source-directory (with-augmented-search-path %load-path source-directory
(with-augmented-search-path %load-compiled-path build-directory (with-augmented-search-path %load-compiled-path build-directory
(with-fluids ((*current-warning-prefix* "")) (with-fluids ((*current-warning-prefix* ""))
(with-target host
;; FIXME: To work around <https://bugs.gnu.org/15602>, we first load all (lambda ()
;; of FILES. ;; FIXME: To work around <https://bugs.gnu.org/15602>, we first
;; load all of FILES.
(load-files source-directory files (load-files source-directory files
#:report-load report-load #:report-load report-load
#:debug-port debug-port) #:debug-port debug-port)
;; Make sure compilation related modules are loaded before starting to ;; Make sure compilation related modules are loaded before
;; compile files in parallel. ;; starting to compile files in parallel.
(compile #f) (compile #f)
;; XXX: Don't use too many workers to work around the insane memory ;; XXX: Don't use too many workers to work around the insane
;; requirements of the compiler in Guile 2.2.2: ;; memory requirements of the compiler in Guile 2.2.2:
;; <https://lists.gnu.org/archive/html/guile-devel/2017-05/msg00033.html>. ;; <https://lists.gnu.org/archive/html/guile-devel/2017-05/msg00033.html>.
(n-par-for-each (min workers 8) build files) (n-par-for-each (min workers 8) build files)
(unless (zero? total) (unless (zero? total)
(report-compilation #f total total)))))) (report-compilation #f total total))))))))
(eval-when (eval load) (eval-when (eval load)
(when (and (string=? "2" (major-version)) (when (and (string=? "2" (major-version))