]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
authorAlexandre Oliva <aoliva@redhat.com>
Sun, 31 Mar 2002 09:32:52 +0000 (09:32 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Sun, 31 Mar 2002 09:32:52 +0000 (09:32 +0000)
* gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
(LINK_COMMAND_SPEC): ... from here.
(init_gcc_specs): Duplicate it here too, omitting
shared_name in the second copy.
(init_spec): Test for duplicate
* config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.

From-SVN: r51639

gcc/ChangeLog
gcc/config/i386/djgpp.h
gcc/gcc.c

index f92afc0e1f74726e9354ec56de320b3734104f6c..eae2a27d6f016caf761cf1e0a66253c1163cfd7b 100644 (file)
@@ -1,3 +1,12 @@
+2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
+
+       * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
+       (LINK_COMMAND_SPEC): ... from here.
+       (init_gcc_specs): Duplicate it here too, omitting 
+       shared_name in the second copy.
+       (init_spec): Test for duplicate
+       * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
+
 2002-03-30  David S. Miller  <davem@redhat.com>
 
        * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
index 600a11e2168a3699b2c2663af31f9ec7ec513835..ba3060050dd336c91d5fa765692cb0ed1653d27f 100644 (file)
@@ -1,5 +1,5 @@
 /* Configuration for an i386 running MS-DOS with DJGPP.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -106,7 +106,7 @@ Boston, MA 02111-1307, USA.  */
 \t%{r} %{s} %{t} %{u*} %{x} %{z} %{Z}\
 \t%{!A:%{!nostdlib:%{!nostartfiles:%S}}}\
 \t%{static:} %{L*} %D %o\
-\t%{!nostdlib:%{!nodefaultlibs:%G %L %G}}\
+\t%{!nostdlib:%{!nodefaultlibs:%G}}\
 \t%{!A:%{!nostdlib:%{!nostartfiles:%E}}}\
 \t-Tdjgpp.djl %{T*}}}}}}}\n\
 %{!c:%{!M:%{!MM:%{!E:%{!S:stubify %{v} %{o*:%*} %{!o*:a.out} }}}}}"
index c9098acfc26f9e685a53c0d94237cf616cb365cc..9b2aa0ea07c7021db852f3b168998e1b639bc62a 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -558,9 +558,9 @@ proper position among the other output files.  */
 #ifndef LIBGCC_SPEC
 #if defined(LINK_LIBGCC_SPECIAL) || defined(LINK_LIBGCC_SPECIAL_1)
 /* Have gcc do the search for libgcc.a.  */
-#define LIBGCC_SPEC "libgcc.a%s"
+#define LIBGCC_SPEC "libgcc.a%s %L libgcc.a%s"
 #else
-#define LIBGCC_SPEC "-lgcc"
+#define LIBGCC_SPEC "-lgcc %L -lgcc"
 #endif
 #endif
 
@@ -620,7 +620,7 @@ proper position among the other output files.  */
 %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
     %(linker) %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t}\
     %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}\
-    %{static:} %{L*} %(link_libgcc) %o %{!nostdlib:%{!nodefaultlibs:%G %L %G}}\
+    %{static:} %{L*} %(link_libgcc) %o %{!nostdlib:%{!nodefaultlibs:%G}}\
     %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}"
 #endif
 
@@ -1426,7 +1426,16 @@ init_gcc_specs (obstack, shared_name, static_name, eh_name)
 #else
                shared_name,
 #endif
-               "}}}", NULL);
+               "}}} %L ",
+               "%{static|static-libgcc:", static_name, " ", eh_name,
+               "}%{!static:%{!static-libgcc:",
+               "%{!shared:%{!shared-libgcc:", static_name, " ",
+               eh_name, "}%{shared-libgcc:",
+               static_name, "}}",
+#ifdef LINK_EH_SPEC
+               "%{shared:%{!shared-libgcc:", static_name, "}}",
+#endif
+               "}}", NULL);
 
   obstack_grow (obstack, buf, strlen (buf));
   free (buf);
@@ -1507,7 +1516,7 @@ init_spec ()
        when given the proper command line arguments.  */
     while (*p)
       {
-        if (in_sep && *p == '-' && strncmp (p, "-lgcc", 5) == 0)
+        if (in_sep && *p == '-' && strncmp (p, "-lgcc %L -lgcc", 14) == 0)
          {
            init_gcc_specs (&obstack,
 #ifdef NO_SHARED_LIBGCC_MULTILIB
@@ -1518,10 +1527,11 @@ init_spec ()
                            ,
                            "-lgcc",
                            "-lgcc_eh");
-           p += 5;
+           p += 14;
            in_sep = 0;
          }
-       else if (in_sep && *p == 'l' && strncmp (p, "libgcc.a%s", 10) == 0)
+       else if (in_sep && *p == 'l'
+                && strncmp (p, "libgcc.a%s %L libgcc.a%s", 24) == 0)
          {
            /* Ug.  We don't know shared library extensions.  Hope that
               systems that use this form don't do shared libraries.  */
@@ -1534,7 +1544,7 @@ init_spec ()
                            ,
                            "libgcc.a%s",
                            "libgcc_eh.a%s");
-           p += 10;
+           p += 24;
            in_sep = 0;
          }
        else