aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2018-03-16 18:33:52 -0400
committerMark H Weaver <mhw@netris.org>2018-03-16 20:02:59 -0400
commit99aaeaa00bd3d5964fc5a723f52c2baf3f3d2974 (patch)
tree2bc0fac3b05cb85e5b359b3464faeec75f39bdcb
parentcbdfa50d9fb19704caa60818d7635047a6a26d71 (diff)
downloadguix-99aaeaa00bd3d5964fc5a723f52c2baf3f3d2974.tar
guix-99aaeaa00bd3d5964fc5a723f52c2baf3f3d2974.tar.gz
build-system/gnu: Tolerate errors during the 'strip' phase.
This is a followup to commit 9a87649c863e1ff8b073b356875eb05eecedbcf7. * guix/build/gnu-build-system.scm (strip)[strip-dir]: If an invoke error occurs, issue a warning and continue to the next file. This restores the tolerance of stripping errors prior to commit 9a87649.
-rw-r--r--guix/build/gnu-build-system.scm35
1 files changed, 24 insertions, 11 deletions
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index 18d76a3405..8fe6fa8d60 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -27,6 +27,8 @@
#:use-module (ice-9 format)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
+ #:use-module (srfi srfi-34)
+ #:use-module (srfi srfi-35)
#:use-module (srfi srfi-26)
#:use-module (rnrs io ports)
#:export (%standard-phases
@@ -437,17 +439,28 @@ makefiles."
(for-each (lambda (file)
(when (or (elf-file? file) (ar-file? file))
- (when debug-output
- (make-debug-file file))
-
- ;; Ensure the file is writable.
- (make-file-writable file)
-
- (apply invoke strip-command
- (append strip-flags (list file)))
-
- (when debug-output
- (add-debug-link file))))
+ ;; If an error occurs while processing a file, issue a
+ ;; warning and continue to the next file.
+ (guard (c ((invoke-error? c)
+ (format (current-error-port)
+ "warning: ~a: program ~s exited\
+~@[ with non-zero exit status ~a~]\
+~@[ terminated by signal ~a~]~%"
+ file
+ (invoke-error-program c)
+ (invoke-error-exit-status c)
+ (invoke-error-term-signal c))))
+ (when debug-output
+ (make-debug-file file))
+
+ ;; Ensure the file is writable.
+ (make-file-writable file)
+
+ (apply invoke strip-command
+ (append strip-flags (list file)))
+
+ (when debug-output
+ (add-debug-link file)))))
(find-files dir
(lambda (file stat)
;; Ignore symlinks such as: