From: Jo-Philipp Wich Date: Thu, 10 Sep 2020 11:55:48 +0000 (+0200) Subject: scripts: bundle-libraries.sh: retain preloaded libraries X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=10dbdeccfadb56557d267e3dc8f22d6bafbb422f;p=openwrt%2Fstaging%2Fadrian.git scripts: bundle-libraries.sh: retain preloaded libraries Since the introduction of fakeroot support, wrapped SDK executables might be invoked from a shell that has libfakeroot.so preloaded. Since we're using preloading as well in order to mangle argv[0] when invoking the shipped ELF interpreter directly, we must take care of preloading the already preloaded libraries as well, to avoid invoked programs losing their fakeroot capabilities. Extend the bundle-libraries.sh script to take any existing $LD_PRELOAD into account when invoking the target ELF executable with a preloaded runas.so library. Signed-off-by: Jo-Philipp Wich --- diff --git a/scripts/bundle-libraries.sh b/scripts/bundle-libraries.sh index d3c7206a4d..9efcbbd0b2 100755 --- a/scripts/bundle-libraries.sh +++ b/scripts/bundle-libraries.sh @@ -186,7 +186,7 @@ for BIN in "$@"; do #!/usr/bin/env bash dir="\$(dirname "\$0")" export RUNAS_ARG0="\$0" - export LD_PRELOAD="\$dir/${REL:+$REL/}runas.so" + export LD_PRELOAD="\${LD_PRELOAD:+\$LD_PRELOAD:}\$dir/${REL:+$REL/}runas.so" exec "\$dir/${REL:+$REL/}$LDSO" --library-path "\$dir/${REL:+$REL/}" "\$dir/.${BIN##*/}.bin" "\$@" EOF