diff options
author | Edward O'Callaghan <eocallaghan@auroraux.org> | 2009-11-18 14:51:31 +0000 |
---|---|---|
committer | Edward O'Callaghan <eocallaghan@auroraux.org> | 2009-11-18 14:51:31 +0000 |
commit | 69203e108b097695c421561c8f1b45b498f5e5d4 (patch) | |
tree | 149a849d97ca0f3550e4ff00ebfa3a8a89c8f39e /lib/Driver/Tools.cpp | |
parent | c72af578b2a9d0c27b1908dd4082b94db42cd9b7 (diff) |
Fix passing stdc++ correctly in the FreeBSD toolchain support, Credit to Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89205 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r-- | lib/Driver/Tools.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 34154f3a3d..e0af3bc90b 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2609,6 +2609,8 @@ void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA, // FIXME: For some reason GCC passes -lgcc and -lgcc_s before adding // the default system libraries. Just mimic this for now. CmdArgs.push_back("-lgcc"); + if (D.CCCIsCXX) + CmdArgs.push_back("-lstdc++"); if (Args.hasArg(options::OPT_static)) { CmdArgs.push_back("-lgcc_eh"); } else { @@ -2638,10 +2640,6 @@ void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA, else CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crtendS.o"))); CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crtn.o"))); - // FIXME: g++ is more complicated here, it tries to put -lstdc++ - // before -lm, for example. - if (D.CCCIsCXX) - CmdArgs.push_back("-lstdc++"); } const char *Exec = |