libitm.exp: Reorder lib loads into dependency order.
[gcc.git] / gcc / incpath.c
index 0e61b8b747afa63eeaef30bd754c90dbc7f70e05..018da982c14cd947f4896ac1cbd569ad18a5d653 100644 (file)
@@ -149,12 +149,17 @@ add_standard_paths (const char *sysroot, const char *iprefix,
                {
                  char *str = concat (iprefix, p->fname + len, NULL);
                  if (p->multilib == 1 && imultilib)
-                   str = concat (str, dir_separator_str, imultilib, NULL);
+                   str = reconcat (str, str, dir_separator_str,
+                                   imultilib, NULL);
                  else if (p->multilib == 2)
                    {
                      if (!imultiarch)
-                       continue;
-                     str = concat (str, dir_separator_str, imultiarch, NULL);
+                       {
+                         free (str);
+                         continue;
+                       }
+                     str = reconcat (str, str, dir_separator_str,
+                                     imultiarch, NULL);
                    }
                  add_path (str, SYSTEM, p->cxx_aware, false);
                }
@@ -183,6 +188,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
                   && !filename_ncmp (p->fname, cpp_PREFIX, cpp_PREFIX_len))
            {
              static const char *relocated_prefix;
+             char *ostr;
              /* If this path starts with the configure-time prefix,
                 but the compiler has been relocated, replace it
                 with the run-time prefix.  The run-time exec prefix
@@ -198,22 +204,27 @@ add_standard_paths (const char *sysroot, const char *iprefix,
                    = make_relative_prefix (dummy,
                                            cpp_EXEC_PREFIX,
                                            cpp_PREFIX);
+                 free (dummy);
                }
-             str = concat (relocated_prefix,
-                           p->fname + cpp_PREFIX_len,
-                           NULL);
-             str = update_path (str, p->component);
+             ostr = concat (relocated_prefix,
+                            p->fname + cpp_PREFIX_len,
+                            NULL);
+             str = update_path (ostr, p->component);
+             free (ostr);
            }
          else
            str = update_path (p->fname, p->component);
 
          if (p->multilib == 1 && imultilib)
-           str = concat (str, dir_separator_str, imultilib, NULL);
+           str = reconcat (str, str, dir_separator_str, imultilib, NULL);
          else if (p->multilib == 2)
            {
              if (!imultiarch)
-               continue;
-             str = concat (str, dir_separator_str, imultiarch, NULL);
+               {
+                 free (str);
+                 continue;
+               }
+             str = reconcat (str, str, dir_separator_str, imultiarch, NULL);
            }
 
          add_path (str, SYSTEM, p->cxx_aware, false);