diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/g++spec.c | 14 |
2 files changed, 15 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1fb0027..329b12e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-07-26 Geoffrey Keating <geoffk@apple.com> + + * g++spec.c (LIBSTDCXX_PROFILE): Default to LIBSTDCXX. + (lang_specific_driver): If the C++ or math library options don't + start with '-l', don't count them as added libraries. + 2004-07-26 Nathan Sidwell <nathan@codesourcery.com> * decl.c (xref_basetypes): Adjust base access vector creation. diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c index 69cf186..286134b 100644 --- a/gcc/cp/g++spec.c +++ b/gcc/cp/g++spec.c @@ -43,7 +43,7 @@ Boston, MA 02111-1307, USA. */ #define LIBSTDCXX "-lstdc++" #endif #ifndef LIBSTDCXX_PROFILE -#define LIBSTDCXX_PROFILE "-lstdc++" +#define LIBSTDCXX_PROFILE LIBSTDCXX #endif void @@ -297,15 +297,19 @@ lang_specific_driver (int *in_argc, const char *const **in_argv, /* Add `-lstdc++' if we haven't already done so. */ if (library > 0) { - arglist[j++] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX; - added_libraries++; + arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX; + if (arglist[j][0] != '-' || arglist[j][1] == 'l') + added_libraries++; + j++; } if (saw_math) arglist[j++] = saw_math; else if (library > 0 && need_math) { - arglist[j++] = saw_profile_flag ? MATH_LIBRARY_PROFILE : MATH_LIBRARY; - added_libraries++; + arglist[j] = saw_profile_flag ? MATH_LIBRARY_PROFILE : MATH_LIBRARY; + if (arglist[j][0] != '-' || arglist[j][1] == 'l') + added_libraries++; + j++; } if (saw_libc) arglist[j++] = saw_libc; |