summaryrefslogtreecommitdiff
path: root/guix/scripts/pack.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/scripts/pack.scm')
-rw-r--r--guix/scripts/pack.scm10
1 files changed, 4 insertions, 6 deletions
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 25ac9d29d0..0dc9979194 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -1201,12 +1201,10 @@ last resort for relocation."
(utf8->string bv)))))
(define (runpath file)
- ;; Return the RUNPATH of FILE as a list of directories.
- (let* ((bv (call-with-input-file file get-bytevector-all))
- (elf (parse-elf bv))
- (dyninfo (elf-dynamic-info elf)))
- (or (and=> dyninfo elf-dynamic-info-runpath)
- '())))
+ ;; Return the "recursive" RUNPATH of FILE as a list of
+ ;; directories.
+ (delete-duplicates
+ (map dirname (file-needed/recursive file))))
(define (elf-loader-compile-flags program)
;; Return the cpp flags defining macros for the ld.so/fakechroot