summaryrefslogtreecommitdiffstats
path: root/gcc/cp/g++spec.c
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-26 19:24:55 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-26 19:24:55 +0000
commit9dc893080e67ff964558998fed680925a7cb4b70 (patch)
treefc3d4528a3fabd42ccd7df7a292bffb8b965dfd1 /gcc/cp/g++spec.c
parentfe4306df6d38038dcd6d9f04a2981f58c77a83c2 (diff)
downloadppe42-gcc-9dc893080e67ff964558998fed680925a7cb4b70.tar.gz
ppe42-gcc-9dc893080e67ff964558998fed680925a7cb4b70.zip
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85201 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/g++spec.c')
-rw-r--r--gcc/cp/g++spec.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c
index 69cf1864cf8..286134b0e97 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;
OpenPOWER on IntegriCloud