]> granicus.if.org Git - clang/commitdiff
Driver/Linux: Fix the ASAN library path to match current compiler-rt
authorDaniel Dunbar <daniel@zuster.org>
Wed, 7 Dec 2011 23:22:17 +0000 (23:22 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 7 Dec 2011 23:22:17 +0000 (23:22 +0000)
integration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146098 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp

index 2d95aec0800ec901e12a1cb54e69929d8c14bf6b..a8a88e70b18e7222d504ef30eaf66e37d700a43b 100644 (file)
@@ -1109,11 +1109,13 @@ static void addAsanRTLinux(const ToolChain &TC, const ArgList &Args,
       !Args.hasFlag(options::OPT_faddress_sanitizer,
                     options::OPT_fno_address_sanitizer, false))
     return;
-  // LibAsan is "../lib/clang/linux/ArchName/libclang_rt.asan.a"
-  llvm::SmallString<128> LibAsan =
-      llvm::sys::path::parent_path(StringRef(TC.getDriver().Dir));
-  llvm::sys::path::append(LibAsan, "lib", "clang", "linux", TC.getArchName());
-  llvm::sys::path::append(LibAsan, "libclang_rt.asan.a");
+
+  // LibAsan is "libclang_rt.asan-<ArchName>.a" in the Linux library resource
+  // directory.
+  llvm::SmallString<128> LibAsan(TC.getDriver().ResourceDir);
+  llvm::sys::path::append(LibAsan, "lib", "linux",
+                          (Twine("libclang_rt.asan-") +
+                           TC.getArchName() + ".a"));
   CmdArgs.push_back(Args.MakeArgString(LibAsan));
   CmdArgs.push_back("-lpthread");
   CmdArgs.push_back("-ldl");