diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/Driver/ToolChains/Solaris.cpp')
| -rw-r--r-- | contrib/llvm-project/clang/lib/Driver/ToolChains/Solaris.cpp | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/Solaris.cpp b/contrib/llvm-project/clang/lib/Driver/ToolChains/Solaris.cpp index de5a69e4ca3f..85619a91554e 100644 --- a/contrib/llvm-project/clang/lib/Driver/ToolChains/Solaris.cpp +++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/Solaris.cpp @@ -64,6 +64,7 @@ void solaris::Linker::ConstructJob(Compilation &C, const JobAction &JA,                                     const InputInfoList &Inputs,                                     const ArgList &Args,                                     const char *LinkingOutput) const { +  const Driver &D = getToolChain().getDriver();    const bool IsPIE = getPIE(Args, getToolChain());    ArgStringList CmdArgs; @@ -152,8 +153,11 @@ void solaris::Linker::ConstructJob(Compilation &C, const JobAction &JA,    if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs,                     options::OPT_r)) { -    if (getToolChain().ShouldLinkCXXStdlib(Args)) -      getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); +    if (D.CCCIsCXX()) { +      if (getToolChain().ShouldLinkCXXStdlib(Args)) +        getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs); +      CmdArgs.push_back("-lm"); +    }      if (Args.hasArg(options::OPT_fstack_protector) ||          Args.hasArg(options::OPT_fstack_protector_strong) ||          Args.hasArg(options::OPT_fstack_protector_all)) { @@ -172,7 +176,6 @@ void solaris::Linker::ConstructJob(Compilation &C, const JobAction &JA,      CmdArgs.push_back("-lc");      if (!Args.hasArg(options::OPT_shared)) {        CmdArgs.push_back("-lgcc"); -      CmdArgs.push_back("-lm");      }      const SanitizerArgs &SA = getToolChain().getSanitizerArgs(Args);      if (NeedsSanitizerDeps) {  | 
