(process_command): When GCC_EXEC_PREFIX is defined and tooldir is relative...
authorRichard Stallman <rms@gnu.org>
Fri, 28 May 1993 22:55:11 +0000 (22:55 +0000)
committerRichard Stallman <rms@gnu.org>
Fri, 28 May 1993 22:55:11 +0000 (22:55 +0000)
(process_command): When GCC_EXEC_PREFIX is defined and
tooldir is relative, add it to search path in addition to standard
directory rather than instead of.

From-SVN: r4588

gcc/gcc.c

index 0913c884ce45b0b73db9bf0afe46b07da7518949..502f13e4086c20dfefa302ef5d2de0fe77449e89 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -2352,24 +2352,6 @@ process_command (argc, argv)
        n_infiles++;
     }
 
-  tooldir_prefix = concat (tooldir_base_prefix, spec_machine, "/");
-
-  /* If tooldir is relative, base it on exec_prefix.  A relative
-     tooldir lets us move the installed tree as a unit.  */
-
-  if (*tooldir_prefix != '/')
-    {
-      if (gcc_exec_prefix)
-       tooldir_prefix = concat (concat (gcc_exec_prefix, spec_machine, "/"),
-                                concat (spec_version, "/", tooldir_prefix),
-                                "");
-      else
-       tooldir_prefix = concat (concat (standard_exec_prefix, spec_machine, "/"),
-                                concat (spec_version, "/", tooldir_prefix),
-                                "");
-    }
-
-
   /* Set up the search paths before we go looking for config files.  */
 
   /* These come before the md prefixes so that we will find gcc's subcommands
@@ -2382,6 +2364,35 @@ process_command (argc, argv)
   add_prefix (&startfile_prefix, standard_exec_prefix, 0, 1, NULL_PTR);
   add_prefix (&startfile_prefix, standard_exec_prefix_1, 0, 1, NULL_PTR);
 
+  tooldir_prefix = concat (tooldir_base_prefix, spec_machine, "/");
+
+  /* If tooldir is relative, base it on exec_prefix.  A relative
+     tooldir lets us move the installed tree as a unit.
+
+     If GCC_EXEC_PREFIX is defined, then we want to add two relative
+     directories, so that we can search both the user specified directory
+     and the standard place.  */
+
+  if (*tooldir_prefix != '/')
+    {
+      if (gcc_exec_prefix)
+       {
+         char *gcc_exec_tooldir_prefix
+           = concat (concat (gcc_exec_prefix, spec_machine, "/"),
+                     concat (spec_version, "/", tooldir_prefix),
+                     "");
+
+         add_prefix (&exec_prefix, concat (gcc_exec_tooldir_prefix, "bin", "/"),
+                     0, 0, NULL_PTR);
+         add_prefix (&startfile_prefix, concat (gcc_exec_tooldir_prefix, "lib", "/"),
+                     0, 0, NULL_PTR);
+       }
+
+      tooldir_prefix = concat (concat (standard_exec_prefix, spec_machine, "/"),
+                              concat (spec_version, "/", tooldir_prefix),
+                              "");
+    }
+
   add_prefix (&exec_prefix, concat (tooldir_prefix, "bin", "/"),
              0, 0, NULL_PTR);
   add_prefix (&startfile_prefix, concat (tooldir_prefix, "lib", "/"),