build: bundle-libraries.sh: do not override argv[0] in inner exec calls
authorJo-Philipp Wich <jo@mein.io>
Mon, 24 Jul 2017 11:33:33 +0000 (13:33 +0200)
committerJo-Philipp Wich <jo@mein.io>
Wed, 13 Dec 2017 15:23:39 +0000 (16:23 +0100)
Only mangle argv[0] of the first executed process and leave the argument
vector of subsequent invocations as-is to allow child programs to properly
discover resources relative to their binary locations.

Fixes "cc1" discovery when executing the host gcc through the bundled
"ccache" executable.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 9e64874fb2508e49e52898c238d817bd152bf2c2)

scripts/bundle-libraries.sh

index b108fd8f7768a34205ae1529548bec08d9c978c1..f254d4da47058b9456d42efc288d2d19790c587f 100755 (executable)
@@ -79,8 +79,10 @@ _runas_so() {
                int mangle_arg0(int argc, char **argv, char **env) {
                        char *arg0 = getenv("RUNAS_ARG0");
 
-                       if (arg0)
+                       if (arg0) {
                                argv[0] = arg0;
+                               unsetenv("RUNAS_ARG0");
+                       }
 
                        return 0;
                }