diff options
author | Mark H Weaver <mhw@netris.org> | 2018-03-16 18:33:52 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2018-03-16 20:02:59 -0400 |
commit | 99aaeaa00bd3d5964fc5a723f52c2baf3f3d2974 (patch) | |
tree | 2bc0fac3b05cb85e5b359b3464faeec75f39bdcb | |
parent | cbdfa50d9fb19704caa60818d7635047a6a26d71 (diff) | |
download | 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.scm | 35 |
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: |