From 01e054665da8e46a14bb326cee073e48ee0366ef Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Fri, 6 Aug 2004 00:29:17 +0000 Subject: [PATCH] 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 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/g++spec.c | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 43ba64936e2..09f671844ae 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-08-05 Geoffrey Keating + + * g++spec.c (lang_specific_driver): An -Xlinker or -Wl, option + means that libstdc++ is needed. + 2004-08-05 Nathan Sidwell * 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 286134b0e97..ec31d818805 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' -- 2.30.2