gcc.c (process_command): Add program name to GCC_EXEC_PREFIX value before passing...
authorJoseph Myers <joseph@codesourcery.com>
Fri, 28 Apr 2006 12:15:36 +0000 (13:15 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Fri, 28 Apr 2006 12:15:36 +0000 (13:15 +0100)
* gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
value before passing to make_relative_prefix.

From-SVN: r113345

gcc/ChangeLog
gcc/gcc.c

index 9bf6279..6d7d201 100644 (file)
@@ -1,3 +1,8 @@
+2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
+       value before passing to make_relative_prefix.
+
 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
 
        PR middle-end/27260
index f23b5f3..4b628ef 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -3376,9 +3376,17 @@ process_command (int argc, const char **argv)
        putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL));
     }
   else
-    gcc_libexec_prefix = make_relative_prefix (gcc_exec_prefix,
-                                              standard_exec_prefix,
-                                              standard_libexec_prefix);
+    {
+      /* make_relative_prefix requires a program name, but
+        GCC_EXEC_PREFIX is typically a directory name with a trailing
+        / (which is ignored by make_relative_prefix), so append a
+        program name.  */
+      char *tmp_prefix = concat (gcc_exec_prefix, "gcc", NULL);
+      gcc_libexec_prefix = make_relative_prefix (tmp_prefix,
+                                                standard_exec_prefix,
+                                                standard_libexec_prefix);
+      free (tmp_prefix);
+    }
 #else
 #endif