[PATCH] D46452: [sanitizer] Don't add --export-dynamic for Myriad
This revision was automatically updated to reflect the committed changes. Closed by commit rC332635: [sanitizer] Don't add --export-dynamic for Myriad (authored by waltl, committed by ). Changed prior to commit: https://reviews.llvm.org/D46452?vs=147233&id=147355#toc Repository: rC Clang https://reviews.llvm.org/D46452 Files: lib/Driver/ToolChains/CommonArgs.cpp Index: lib/Driver/ToolChains/CommonArgs.cpp === --- lib/Driver/ToolChains/CommonArgs.cpp +++ lib/Driver/ToolChains/CommonArgs.cpp @@ -538,6 +538,11 @@ // the option, so don't try to pass it. if (TC.getTriple().getOS() == llvm::Triple::Solaris) return true; + // Myriad is static linking only. Furthermore, some versions of its + // linker have the bug where --export-dynamic overrides -static, so + // don't use --export-dynamic on that platform. + if (TC.getTriple().getVendor() == llvm::Triple::Myriad) +return true; SmallString<128> SanRT(TC.getCompilerRT(Args, Sanitizer)); if (llvm::sys::fs::exists(SanRT + ".syms")) { CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + SanRT + ".syms")); Index: lib/Driver/ToolChains/CommonArgs.cpp === --- lib/Driver/ToolChains/CommonArgs.cpp +++ lib/Driver/ToolChains/CommonArgs.cpp @@ -538,6 +538,11 @@ // the option, so don't try to pass it. if (TC.getTriple().getOS() == llvm::Triple::Solaris) return true; + // Myriad is static linking only. Furthermore, some versions of its + // linker have the bug where --export-dynamic overrides -static, so + // don't use --export-dynamic on that platform. + if (TC.getTriple().getVendor() == llvm::Triple::Myriad) +return true; SmallString<128> SanRT(TC.getCompilerRT(Args, Sanitizer)); if (llvm::sys::fs::exists(SanRT + ".syms")) { CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + SanRT + ".syms")); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D46452: [sanitizer] Don't add --export-dynamic for Myriad
waltl updated this revision to Diff 147233. waltl added a comment. Address CR comments Repository: rL LLVM https://reviews.llvm.org/D46452 Files: clang/lib/Driver/ToolChains/CommonArgs.cpp Index: clang/lib/Driver/ToolChains/CommonArgs.cpp === --- clang/lib/Driver/ToolChains/CommonArgs.cpp +++ clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -538,6 +538,11 @@ // the option, so don't try to pass it. if (TC.getTriple().getOS() == llvm::Triple::Solaris) return true; + // Myriad is static linking only. Furthermore, some versions of its + // linker have the bug where --export-dynamic overrides -static, so + // don't use --export-dynamic on that platform. + if (TC.getTriple().getVendor() == llvm::Triple::Myriad) +return true; SmallString<128> SanRT(TC.getCompilerRT(Args, Sanitizer)); if (llvm::sys::fs::exists(SanRT + ".syms")) { CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + SanRT + ".syms")); Index: clang/lib/Driver/ToolChains/CommonArgs.cpp === --- clang/lib/Driver/ToolChains/CommonArgs.cpp +++ clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -538,6 +538,11 @@ // the option, so don't try to pass it. if (TC.getTriple().getOS() == llvm::Triple::Solaris) return true; + // Myriad is static linking only. Furthermore, some versions of its + // linker have the bug where --export-dynamic overrides -static, so + // don't use --export-dynamic on that platform. + if (TC.getTriple().getVendor() == llvm::Triple::Myriad) +return true; SmallString<128> SanRT(TC.getCompilerRT(Args, Sanitizer)); if (llvm::sys::fs::exists(SanRT + ".syms")) { CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + SanRT + ".syms")); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D46452: [sanitizer] Don't add --export-dynamic for Myriad
alekseyshl added inline comments. Comment at: clang/lib/Driver/ToolChains/CommonArgs.cpp:706 // to be dynamic to be sure we export sanitizer interface functions. - if (AddExportDynamic) + if (AddExportDynamic && TC.getTriple().getVendor() != llvm::Triple::Myriad) CmdArgs.push_back("--export-dynamic"); Maybe this logic should be in addSanitizerDynamicList, similar to how it is handled for Solaris? Repository: rL LLVM https://reviews.llvm.org/D46452 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D46452: [sanitizer] Don't add --export-dynamic for Myriad
waltl created this revision. waltl added reviewers: vitalybuka, eugenis, alekseyshl. Herald added a subscriber: llvm-commits. This is to work around a bug in some versions of gnu ld, where --export-dynamic implies -shared even if -static is explicitly given. Myriad supports static linking only, so --export-dynamic is never needed. Repository: rL LLVM https://reviews.llvm.org/D46452 Files: clang/lib/Driver/ToolChains/CommonArgs.cpp Index: clang/lib/Driver/ToolChains/CommonArgs.cpp === --- clang/lib/Driver/ToolChains/CommonArgs.cpp +++ clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -703,7 +703,7 @@ } // If there is a static runtime with no dynamic list, force all the symbols // to be dynamic to be sure we export sanitizer interface functions. - if (AddExportDynamic) + if (AddExportDynamic && TC.getTriple().getVendor() != llvm::Triple::Myriad) CmdArgs.push_back("--export-dynamic"); const SanitizerArgs &SanArgs = TC.getSanitizerArgs(); Index: clang/lib/Driver/ToolChains/CommonArgs.cpp === --- clang/lib/Driver/ToolChains/CommonArgs.cpp +++ clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -703,7 +703,7 @@ } // If there is a static runtime with no dynamic list, force all the symbols // to be dynamic to be sure we export sanitizer interface functions. - if (AddExportDynamic) + if (AddExportDynamic && TC.getTriple().getVendor() != llvm::Triple::Myriad) CmdArgs.push_back("--export-dynamic"); const SanitizerArgs &SanArgs = TC.getSanitizerArgs(); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits