summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-11-24 22:45:41 +0100
committerLudovic Courtès <ludo@gnu.org>2014-11-24 22:45:41 +0100
commitf8bcf1935a18e9a728e824030b3ded4fb63638cf (patch)
tree0e95bfbfec68ff603cd185e3e867a2ad3859e749
parentc23d17095db0611d8ee32357f17da441bcb0bc75 (diff)
downloadguix-f8bcf1935a18e9a728e824030b3ded4fb63638cf.tar.gz
build-system/gnu: Gracefully handle dangling symlinks in the 'strip' phase.
* guix/build/gnu-build-system.scm (strip): Check whether 'file-exists?'
  before calling 'elf-file?' and 'ar-file?'.  This should fix build
  failures in the presence of dangling symlinks, as in
  <http://hydra.gnu.org/build/167521/nixlog/1/raw>.
-rw-r--r--guix/build/gnu-build-system.scm3
1 files changed, 2 insertions, 1 deletions
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index dbbb71af35..e42a6cc48b 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -343,7 +343,8 @@ makefiles."
               debug-output objcopy-command))
     (file-system-fold (const #t)
                       (lambda (path stat result)  ; leaf
-                        (and (or (elf-file? path) (ar-file? path))
+                        (and (file-exists? path)  ;discard dangling symlinks
+                             (or (elf-file? path) (ar-file? path))
                              (or (not debug-output)
                                  (make-debug-file path))
                              (zero? (apply system* strip-command