Hi Carlos, Carlos O'Donell skribis: > On 5/12/20 6:03 AM, Ludovic Courtès wrote: >> One thing that won’t work is dlopen because our ‘--library-path’ >> argument is computed statically based on the RUNPATH of the wrapped >> program. So for instance if you try to load guile-readline.so from >> Guile, it eventually fails because libreadline.so isn’t found >> (libreadline.so is in the RUNPATH of guile-readline.so, but the loader >> uses non-interposable calls here as well.) Probably no simple solution >> to that one. > > There is a simple solution. You need to write a dynamic loader audit module > that handles la_objsearch() and inject your lookup path. See man 7 rtld-audit. > The dynamic loader audit modules allow you to alter the loader's core behaviour > with a plugin. That’s a great idea, and it works like a charm. Thank you! Concretely, I can do: guix pack -RR -S /bin=bin -S /etc=etc guile guile-readline and then, on the target machine: tar xf pack.tar.gz . ./etc/profile export GUIX_EXECUTION_ENGINE=fakechroot ./bin/guile -c '(use-modules (ice-9 readline))' Neat! Ludo’.