aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-11-30 23:03:05 +0000
committerRichard Stallman <rms@gnu.org>1992-11-30 23:03:05 +0000
commit49003ff65a7278718691182fb429cd9b7680cfa3 (patch)
tree982b2f2746ecd644ab8198e628d9e86733dc7b61 /gcc
parentd5c97601dc3f71c7fa32d2e3cf87262063eda34f (diff)
downloadgcc-49003ff65a7278718691182fb429cd9b7680cfa3.zip
gcc-49003ff65a7278718691182fb429cd9b7680cfa3.tar.gz
gcc-49003ff65a7278718691182fb429cd9b7680cfa3.tar.bz2
(LINK_LIBGCC_SPECIAL_1): New parameter.
From-SVN: r2818
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gcc.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index d54f1f3..1463f2b 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -565,11 +565,19 @@ static int n_default_compilers
/* Here is the spec for running the linker, after compiling all files. */
-#ifdef LINK_LIBGCC_SPECIAL
-/* Have gcc do the search for libgcc.a. */
/* -u* was put back because both BSD and SysV seem to support it. */
/* %{static:} simply prevents an error message if the target machine
doesn't handle -static. */
+#ifdef LINK_LIBGCC_SPECIAL_1
+/* Have gcc do the search for libgcc.a, but generate -L options as usual. */
+static char *link_command_spec = "\
+%{!c:%{!M:%{!MM:%{!E:%{!S:ld %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} \
+ %{r} %{s} %{T*} %{t} %{u*} %{x} %{z}\
+ %{!A:%{!nostdlib:%S}} %{static:}\
+ %{L*} %D %o %{!nostdlib:libgcc.a%s %L libgcc.a%s %{!A:%E}}\n }}}}}";
+#else
+#ifdef LINK_LIBGCC_SPECIAL
+/* Have gcc do the search for libgcc.a, and don't generate -L options. */
static char *link_command_spec = "\
%{!c:%{!M:%{!MM:%{!E:%{!S:ld %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} \
%{r} %{s} %{T*} %{t} %{u*} %{x} %{z}\
@@ -583,6 +591,7 @@ static char *link_command_spec = "\
%{!A:%{!nostdlib:%S}} %{static:}\
%{L*} %D %o %{!nostdlib:-lgcc %L -lgcc %{!A:%E}}\n }}}}}";
#endif
+#endif
/* A vector of options to give to the linker.
These options are accumulated by -Xlinker and -Wl,