]> granicus.if.org Git - clang/commitdiff
Make -faddress-sanitizer on Android link to the new-style runtime.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 12 Sep 2012 09:09:08 +0000 (09:09 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 12 Sep 2012 09:09:08 +0000 (09:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163689 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp

index 1549d3dad19e3f48e242d4ff37b17e94cbd9bf27..25dd0824bce0c9bf2ab1a91f6e7fd017b127ee6c 100644 (file)
@@ -1392,14 +1392,13 @@ static void addAsanRTLinux(const ToolChain &TC, const ArgList &Args,
     if (!Args.hasArg(options::OPT_shared)) {
       if (!Args.hasArg(options::OPT_pie))
         TC.getDriver().Diag(diag::err_drv_asan_android_requires_pie);
-      // For an executable, we add a .preinit_array stub.
-      CmdArgs.push_back("-u");
-      CmdArgs.push_back("__asan_preinit");
-      CmdArgs.push_back("-lasan");
     }
 
-    CmdArgs.push_back("-lasan_preload");
-    CmdArgs.push_back("-ldl");
+    SmallString<128> LibAsan(TC.getDriver().ResourceDir);
+    llvm::sys::path::append(LibAsan, "lib", "linux",
+        (Twine("libclang_rt.asan-") +
+            TC.getArchName() + "-android.so"));
+    CmdArgs.push_back(Args.MakeArgString(LibAsan));
   } else {
     if (!Args.hasArg(options::OPT_shared)) {
       // LibAsan is "libclang_rt.asan-<ArchName>.a" in the Linux library