diff options
author | Nico Weber <nicolasweber@gmx.de> | 2017-07-25 18:02:57 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2017-07-25 18:02:57 +0000 |
commit | 0ee47d92b20019bed49841f93df1b5e4635061fc (patch) | |
tree | 67cbe70e812fd13f4bd7dbd5123894c0ce84607b /clang/lib/Driver/ToolChains/Darwin.cpp | |
parent | f5ecb5e1b41f73868373bddc9fc0c6ebeecae5b5 (diff) | |
download | bcm5719-llvm-0ee47d92b20019bed49841f93df1b5e4635061fc.tar.gz bcm5719-llvm-0ee47d92b20019bed49841f93df1b5e4635061fc.zip |
Introduce -nostdlib++ flag to disable linking the C++ standard library.
Projects that want to statically link their own C++ standard library currently
need to pass -nostdlib or -nodefaultlibs, which also disables linking of the
builtins library, -lm, and so on. Alternatively, they could use `clang` instead
of `clang++`, but that already disables implicit addition of -lm on some
toolchains.
Add a dedicated flag -nostdlib++ that disables just linking of libc++ /
libstdc++. This is analogous to -nostdinc++.
https://reviews.llvm.org/D35780
llvm-svn: 308997
Diffstat (limited to 'clang/lib/Driver/ToolChains/Darwin.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains/Darwin.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp index 27428709d5d..bd8516c47c5 100644 --- a/clang/lib/Driver/ToolChains/Darwin.cpp +++ b/clang/lib/Driver/ToolChains/Darwin.cpp @@ -549,10 +549,9 @@ void darwin::Linker::ConstructJob(Compilation &C, const JobAction &JA, Args.MakeArgString(Twine("-threads=") + llvm::to_string(Parallelism))); } + if (getToolChain().ShouldLinkCXXStdlib(Args)) + getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { - if (getToolChain().getDriver().CCCIsCXX()) - getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); - // link_ssp spec is empty. // Let the tool chain choose which runtime library to link. |