aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-10-01 11:29:54 +0200
committerLudovic Courtès <ludo@gnu.org>2020-10-01 12:45:38 +0200
commit58abd5873985e0cd9a2926867bf697c5e7bc01f9 (patch)
treeb5e955fea6efd63601e8a47ad622e44e6f5fd98b
parent9556ac498fd648147ad7d3b52ec86202d0a8e171 (diff)
downloadguix-58abd5873985e0cd9a2926867bf697c5e7bc01f9.tar.gz
guix-58abd5873985e0cd9a2926867bf697c5e7bc01f9.zip
pack: Work around ld.so bug that affects the "fakechroot" engine.
Fixes <https://bugs.gnu.org/43491>. * guix/scripts/pack.scm (wrapped-package): Use (runpath program) instead of (runpath #$(audit-module)).
-rw-r--r--guix/scripts/pack.scm10
1 files changed, 8 insertions, 2 deletions
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 379e6a3ac6..bab3a3e2e4 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -817,11 +817,17 @@ last resort for relocation."
(string-append "-DLOADER_AUDIT_MODULE=\""
#$(audit-module) "\"")
+
+ ;; XXX: Normally (runpath #$(audit-module)) is
+ ;; enough. However, to work around
+ ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=26634>
+ ;; (glibc <= 2.32), pass the whole search path of
+ ;; PROGRAM, which presumably is a superset of that
+ ;; of the audit module.
(string-append "-DLOADER_AUDIT_RUNPATH={ "
(string-join
(map object->string
- (runpath
- #$(audit-module)))
+ (runpath program))
", " 'suffix)
"NULL }")
(if gconv