diff options
Diffstat (limited to 'guix/build/gremlin.scm')
-rw-r--r-- | guix/build/gremlin.scm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/guix/build/gremlin.scm b/guix/build/gremlin.scm index 24a7b558af..30b06034dd 100644 --- a/guix/build/gremlin.scm +++ b/guix/build/gremlin.scm @@ -18,6 +18,7 @@ (define-module (guix build gremlin) #:use-module (guix elf) + #:use-module ((guix build utils) #:select (store-file-name?)) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) @@ -255,14 +256,23 @@ exceeds total size~%" (compose parse-elf get-bytevector-all))) (dyninfo (elf-dynamic-info elf))) (when dyninfo - (let* ((runpath (elf-dynamic-info-runpath dyninfo)) + (let* ((runpath (filter store-file-name? + (elf-dynamic-info-runpath dyninfo))) + (bogus (remove store-file-name? + (elf-dynamic-info-runpath dyninfo))) (needed (remove always-found? (elf-dynamic-info-needed dyninfo))) (not-found (remove (cut search-path runpath <>) needed))) + ;; XXX: $ORIGIN is not supported. + (unless (null? bogus) + (format (current-error-port) + "~a: warning: RUNPATH contains bogus entries: ~s~%" + file bogus)) + (for-each (lambda (lib) (format (current-error-port) - "error: '~a' depends on '~a', which cannot \ + "~a: error: depends on '~a', which cannot \ be found in RUNPATH ~s~%" file lib runpath)) not-found) |