summary refs log tree commit diff
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.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: