aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2004-08-06 00:29:17 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2004-08-06 00:29:17 +0000
commit01e054665da8e46a14bb326cee073e48ee0366ef (patch)
tree37cc52232a5277dce067e69468a3becdb3f3d874
parent78701d2aadcd404b7e67fb8f9ef4070a1d10eaa8 (diff)
downloadgcc-01e054665da8e46a14bb326cee073e48ee0366ef.zip
gcc-01e054665da8e46a14bb326cee073e48ee0366ef.tar.gz
gcc-01e054665da8e46a14bb326cee073e48ee0366ef.tar.bz2
g++spec.c (lang_specific_driver): An -Xlinker or -Wl, option means that libstdc++ is needed.
* g++spec.c (lang_specific_driver): An -Xlinker or -Wl, option means that libstdc++ is needed. From-SVN: r85620
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/g++spec.c11
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 43ba649..09f6718 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-05 Geoffrey Keating <geoffk@apple.com>
+
+ * g++spec.c (lang_specific_driver): An -Xlinker or -Wl, option
+ means that libstdc++ is needed.
+
2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
* cvt.c (cp_convert_to_pointer): Adjust force_fit_type call.
diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c
index 286134b..ec31d81 100644
--- a/gcc/cp/g++spec.c
+++ b/gcc/cp/g++spec.c
@@ -164,9 +164,18 @@ lang_specific_driver (int *in_argc, const char *const **in_argv,
}
saw_speclang = 1;
}
+ /* Arguments that go directly to the linker might be .o files,
+ or something, and so might cause libstdc++ to be needed. */
+ else if (strcmp (argv[i], "-Xlinker") == 0)
+ {
+ quote = argv[i];
+ if (library == 0)
+ library = 1;
+ }
+ else if (strncmp (argv[i], "-Wl,", 4) == 0)
+ library = (library == 0) ? 1 : library;
else if (((argv[i][2] == '\0'
&& strchr ("bBVDUoeTuIYmLiA", argv[i][1]) != NULL)
- || strcmp (argv[i], "-Xlinker") == 0
|| strcmp (argv[i], "-Tdata") == 0))
quote = argv[i];
else if ((argv[i][2] == '\0'