diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-09-14 23:21:31 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-09-14 23:21:31 +0000 |
commit | fe71f3887cc13a4261b41ead855e6dd2455a293c (patch) | |
tree | f15b53d58f61692b2feaff58f7812a4f760635b0 /clang/lib/Driver/Tools.cpp | |
parent | 8ef7a5b4b7270ecc4a53e053c533bcee6e6b976e (diff) | |
download | llvm-fe71f3887cc13a4261b41ead855e6dd2455a293c.zip llvm-fe71f3887cc13a4261b41ead855e6dd2455a293c.tar.gz llvm-fe71f3887cc13a4261b41ead855e6dd2455a293c.tar.bz2 |
[Solaris] Default to -fno-cxa-finalize.
There is no __cxa_finalize symbol available on recent Solaris OS
versions, so we need this flag to make non trivial C++ programs run.
Also stop looking for cxa_finalize.o, since it won't be there.
Patch by Xan López!
llvm-svn: 247634
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 7a5368a..db29be1 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -4572,8 +4572,9 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, if (!Args.hasFlag(options::OPT_fuse_cxa_atexit, options::OPT_fno_use_cxa_atexit, !IsWindowsCygnus && !IsWindowsGNU && - getToolChain().getArch() != llvm::Triple::hexagon && - getToolChain().getArch() != llvm::Triple::xcore) || + getToolChain().getTriple().getOS() != llvm::Triple::Solaris && + getToolChain().getArch() != llvm::Triple::hexagon && + getToolChain().getArch() != llvm::Triple::xcore) || KernelOrKext) CmdArgs.push_back("-fno-use-cxa-atexit"); @@ -6942,10 +6943,6 @@ void solaris::Linker::ConstructJob(Compilation &C, const JobAction &JA, Args.MakeArgString(getToolChain().GetFilePath("values-Xa.o"))); CmdArgs.push_back( Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o"))); - - if (getToolChain().getDriver().CCCIsCXX()) - CmdArgs.push_back( - Args.MakeArgString(getToolChain().GetFilePath("cxa_finalize.o"))); } const ToolChain::path_list &Paths = getToolChain().getFilePaths(); |