From 5d0641d9eaeab234c10081668e1e76bb7e7986e7 Mon Sep 17 00:00:00 2001 From: Amit Pandey Date: Thu, 4 Apr 2024 17:33:58 +0530 Subject: [PATCH] [Legacy-Flang][Driver][ASan] Add default rpath of host-asan library(libclang_rt.asan.x86_64.so)) for OpenMP Offloading applications when ASan. --- .../clang/lib/Driver/ToolChains/CommonArgs.cpp | 8 ++++++++ .../llvm-legacy/clang/lib/Driver/ToolChains/Gnu.cpp | 2 -- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/flang-legacy/17.0-4/llvm-legacy/clang/lib/Driver/ToolChains/CommonArgs.cpp b/flang-legacy/17.0-4/llvm-legacy/clang/lib/Driver/ToolChains/CommonArgs.cpp index 9f12edd1f1..f4a72ac265 100644 --- a/flang-legacy/17.0-4/llvm-legacy/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/flang-legacy/17.0-4/llvm-legacy/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -949,8 +949,16 @@ void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC, SmallString<256> DefaultLibPath = llvm::sys::path::parent_path(TC.getDriver().Dir); llvm::sys::path::append(DefaultLibPath, CLANG_INSTALL_LIBDIR_BASENAME); + if (TC.getSanitizerArgs(Args).needsAsanRt()) { + CmdArgs.push_back("-rpath"); + CmdArgs.push_back(Args.MakeArgString(TC.getCompilerRTPath())); + } CmdArgs.push_back("-rpath"); CmdArgs.push_back(Args.MakeArgString(CandidateRPath.c_str())); + if (llvm::find_if(CmdArgs, [](StringRef str) { + return !str.compare("--enable-new-dtags"); + }) == CmdArgs.end()) + CmdArgs.push_back("--disable-new-dtags"); } } diff --git a/flang-legacy/17.0-4/llvm-legacy/clang/lib/Driver/ToolChains/Gnu.cpp b/flang-legacy/17.0-4/llvm-legacy/clang/lib/Driver/ToolChains/Gnu.cpp index 323afb886e..f768ed6b26 100644 --- a/flang-legacy/17.0-4/llvm-legacy/clang/lib/Driver/ToolChains/Gnu.cpp +++ b/flang-legacy/17.0-4/llvm-legacy/clang/lib/Driver/ToolChains/Gnu.cpp @@ -568,8 +568,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, // Add Fortran runtime libraries if (needFortranLibs(D, Args)) { ToolChain.AddFortranStdlibLibArgs(Args, CmdArgs); - CmdArgs.push_back("-rpath"); - CmdArgs.push_back(Args.MakeArgString(D.Dir + "/../lib")); } else { // Claim "no Flang libraries" arguments if any for (auto Arg : Args.filtered(options::OPT_noFlangLibs)) {