gcc.c (do_spec_1): Do not add a -L path for a directory in the prefix list if...
authorMark Mitchell <mark@codesourcery.com>
Wed, 23 Mar 2005 01:23:51 +0000 (01:23 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Wed, 23 Mar 2005 01:23:51 +0000 (01:23 +0000)
2005-03-23  Mark Mitchell  <mark@codesourcery.com>

* gcc.c (do_spec_1): Do not add a -L path for a directory in
the prefix list if we have already added a multilib directory
based on that path.
(main): Do not add MD_EXEC_PREFIX to the list of directories to
search with -L.

From-SVN: r96915

gcc/ChangeLog
gcc/gcc.c

index e3dbd08a533974248ccdeab6f75252a526bd3fa9..fcac50b2ae74891a158a604b407d8b01aef63d65 100644 (file)
@@ -1,3 +1,11 @@
+2005-03-23  Mark Mitchell  <mark@codesourcery.com>
+
+       * gcc.c (do_spec_1): Do not add a -L path for a directory in
+       the prefix list if we have already added a multilib directory
+       based on that path.
+       (main): Do not add MD_EXEC_PREFIX to the list of directories to
+       search with -L.
+
 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
 
        * reload1.c (indirect_symref_ok, reload_obstack): Make them
index eda3fa49f530bfdfe5624c6f62338c4385833cc3..342ffa69d359ec2c16320f359eac8e2d7951476b 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4381,6 +4381,7 @@ do_spec_path (struct prefix_list *pl, const char *option,
   static size_t bufsize = 0;
   static char *buffer;
   int idx;
+  bool multilib_p = false;
 
   /* Used on systems which record the specified -L dirs
      and use them to search for dynamic linking.  */
@@ -4403,6 +4404,7 @@ do_spec_path (struct prefix_list *pl, const char *option,
       strcat (buffer, machine_suffix);
       if (is_directory (buffer, dir_for_machine_suffix, 1))
        {
+         multilib_p = true;
          do_spec_1 (option, separate_options, NULL);
          if (separate_options)
            do_spec_1 (" ", 0, NULL);
@@ -4416,6 +4418,7 @@ do_spec_path (struct prefix_list *pl, const char *option,
     {
       if (is_directory (pl->prefix, dir_for_no_suffix, 1))
        {
+         multilib_p = true;
          do_spec_1 (option, separate_options, NULL);
          if (separate_options)
            do_spec_1 (" ", 0, NULL);
@@ -4426,7 +4429,7 @@ do_spec_path (struct prefix_list *pl, const char *option,
        }
     }
 
-  if (only_subdir)
+  if (only_subdir || multilib_p)
     return;
 
   if (machine_suffix)
@@ -6188,10 +6191,6 @@ main (int argc, const char **argv)
      startfile_prefix_spec exclusively.  */
   else if (*cross_compile == '0' || target_system_root)
     {
-      if (*md_exec_prefix)
-       add_sysrooted_prefix (&startfile_prefixes, md_exec_prefix, "GCC",
-                             PREFIX_PRIORITY_LAST, 0, 1);
-
       if (*md_startfile_prefix)
        add_sysrooted_prefix (&startfile_prefixes, md_startfile_prefix,
                              "GCC", PREFIX_PRIORITY_LAST, 0, 1);