Auto merge of #115644 - danakj:catalyst-asan, r=cjgillot,thomcc
Enable ASAN/LSAN/TSAN for *-apple-ios-macabi
The -macabi targets are iOS running on MacOS, and they use the runtime libraries for MacOS, thus they have the same sanitizers available as the *-apple-darwin targets.
This is based on the work of aacf3213b1
.
Closes #113935.
This commit is contained in:
commit
19dd953540
@ -1,5 +1,5 @@
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, Target, TargetOptions};
|
||||
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let llvm_target = "arm64-apple-ios14.0-macabi";
|
||||
@ -7,6 +7,7 @@ pub fn target() -> Target {
|
||||
let arch = Arch::Arm64_macabi;
|
||||
let mut base = opts("ios", arch);
|
||||
base.add_pre_link_args(LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-target", llvm_target]);
|
||||
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
|
@ -1,5 +1,5 @@
|
||||
use super::apple_base::{opts, Arch};
|
||||
use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
|
||||
use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let llvm_target = "x86_64-apple-ios14.0-macabi";
|
||||
@ -7,6 +7,7 @@ pub fn target() -> Target {
|
||||
let arch = Arch::X86_64_macabi;
|
||||
let mut base = opts("ios", arch);
|
||||
base.add_pre_link_args(LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-target", llvm_target]);
|
||||
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
|
||||
|
||||
Target {
|
||||
llvm_target: llvm_target.into(),
|
||||
|
@ -570,6 +570,9 @@ fn copy_sanitizers(
|
||||
let dst = libdir.join(&runtime.name);
|
||||
builder.copy(&runtime.path, &dst);
|
||||
|
||||
// The `aarch64-apple-ios-macabi` and `x86_64-apple-ios-macabi` are also supported for
|
||||
// sanitizers, but they share a sanitizer runtime with `${arch}-apple-darwin`, so we do
|
||||
// not list them here to rename and sign the runtime library.
|
||||
if target == "x86_64-apple-darwin"
|
||||
|| target == "aarch64-apple-darwin"
|
||||
|| target == "aarch64-apple-ios"
|
||||
|
@ -1063,6 +1063,7 @@ fn supported_sanitizers(
|
||||
"aarch64-apple-darwin" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
|
||||
"aarch64-apple-ios" => darwin_libs("ios", &["asan", "tsan"]),
|
||||
"aarch64-apple-ios-sim" => darwin_libs("iossim", &["asan", "tsan"]),
|
||||
"aarch64-apple-ios-macabi" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
|
||||
"aarch64-unknown-fuchsia" => common_libs("fuchsia", "aarch64", &["asan"]),
|
||||
"aarch64-unknown-linux-gnu" => {
|
||||
common_libs("linux", "aarch64", &["asan", "lsan", "msan", "tsan", "hwasan"])
|
||||
@ -1073,6 +1074,7 @@ fn supported_sanitizers(
|
||||
"x86_64-apple-darwin" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
|
||||
"x86_64-unknown-fuchsia" => common_libs("fuchsia", "x86_64", &["asan"]),
|
||||
"x86_64-apple-ios" => darwin_libs("iossim", &["asan", "tsan"]),
|
||||
"x86_64-apple-ios-macabi" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
|
||||
"x86_64-unknown-freebsd" => common_libs("freebsd", "x86_64", &["asan", "msan", "tsan"]),
|
||||
"x86_64-unknown-netbsd" => {
|
||||
common_libs("netbsd", "x86_64", &["asan", "lsan", "msan", "tsan"])
|
||||
|
@ -13,6 +13,7 @@ pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||
"aarch64-apple-darwin",
|
||||
"aarch64-apple-ios",
|
||||
"aarch64-apple-ios-sim",
|
||||
"aarch64-apple-ios-macabi",
|
||||
"aarch64-unknown-fuchsia",
|
||||
"aarch64-linux-android",
|
||||
"aarch64-unknown-linux-gnu",
|
||||
@ -22,6 +23,7 @@ pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||
"i686-unknown-linux-gnu",
|
||||
"x86_64-apple-darwin",
|
||||
"x86_64-apple-ios",
|
||||
"x86_64-apple-ios-macabi",
|
||||
"x86_64-unknown-fuchsia",
|
||||
"x86_64-linux-android",
|
||||
"x86_64-unknown-freebsd",
|
||||
@ -60,6 +62,7 @@ pub const LSAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||
// "aarch64-apple-darwin",
|
||||
"aarch64-unknown-linux-gnu",
|
||||
"x86_64-apple-darwin",
|
||||
"x86_64-apple-ios-macabi",
|
||||
"x86_64-unknown-linux-gnu",
|
||||
"s390x-unknown-linux-gnu",
|
||||
];
|
||||
@ -75,9 +78,11 @@ pub const TSAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||
"aarch64-apple-darwin",
|
||||
"aarch64-apple-ios",
|
||||
"aarch64-apple-ios-sim",
|
||||
"aarch64-apple-ios-macabi",
|
||||
"aarch64-unknown-linux-gnu",
|
||||
"x86_64-apple-darwin",
|
||||
"x86_64-apple-ios",
|
||||
"x86_64-apple-ios-macabi",
|
||||
"x86_64-unknown-freebsd",
|
||||
"x86_64-unknown-linux-gnu",
|
||||
"s390x-unknown-linux-gnu",
|
||||
|
Loading…
x
Reference in New Issue
Block a user