Skip to content

Commit 4eb1b52

Browse files
committed
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.
1 parent 078eb11 commit 4eb1b52

File tree

5 files changed

+13
-2
lines changed

5 files changed

+13
-2
lines changed

Diff for: compiler/rustc_target/src/spec/aarch64_apple_ios_macabi.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
use super::apple_base::{opts, Arch};
2-
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, Target, TargetOptions};
2+
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions};
33

44
pub fn target() -> Target {
55
let llvm_target = "arm64-apple-ios14.0-macabi";
66

77
let arch = Arch::Arm64_macabi;
88
let mut base = opts("ios", arch);
99
base.add_pre_link_args(LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-target", llvm_target]);
10+
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
1011

1112
Target {
1213
llvm_target: llvm_target.into(),

Diff for: compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
use super::apple_base::{opts, Arch};
2-
use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
2+
use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions};
33

44
pub fn target() -> Target {
55
let llvm_target = "x86_64-apple-ios14.0-macabi";
66

77
let arch = Arch::X86_64_macabi;
88
let mut base = opts("ios", arch);
99
base.add_pre_link_args(LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-target", llvm_target]);
10+
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
1011

1112
Target {
1213
llvm_target: llvm_target.into(),

Diff for: src/bootstrap/compile.rs

+2
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,9 @@ fn copy_sanitizers(
574574
|| target == "aarch64-apple-darwin"
575575
|| target == "aarch64-apple-ios"
576576
|| target == "aarch64-apple-ios-sim"
577+
|| target == "aarch64-apple-ios-catalyst"
577578
|| target == "x86_64-apple-ios"
579+
|| target == "x86_64-apple-ios-catalyst"
578580
{
579581
// Update the library’s install name to reflect that it has been renamed.
580582
apple_darwin_update_library_name(&dst, &format!("@rpath/{}", &runtime.name));

Diff for: src/bootstrap/llvm.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1063,6 +1063,7 @@ fn supported_sanitizers(
10631063
"aarch64-apple-darwin" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
10641064
"aarch64-apple-ios" => darwin_libs("ios", &["asan", "tsan"]),
10651065
"aarch64-apple-ios-sim" => darwin_libs("iossim", &["asan", "tsan"]),
1066+
"aarch64-apple-ios-macabi" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
10661067
"aarch64-unknown-fuchsia" => common_libs("fuchsia", "aarch64", &["asan"]),
10671068
"aarch64-unknown-linux-gnu" => {
10681069
common_libs("linux", "aarch64", &["asan", "lsan", "msan", "tsan", "hwasan"])
@@ -1073,6 +1074,7 @@ fn supported_sanitizers(
10731074
"x86_64-apple-darwin" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
10741075
"x86_64-unknown-fuchsia" => common_libs("fuchsia", "x86_64", &["asan"]),
10751076
"x86_64-apple-ios" => darwin_libs("iossim", &["asan", "tsan"]),
1077+
"x86_64-apple-ios-macabi" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
10761078
"x86_64-unknown-freebsd" => common_libs("freebsd", "x86_64", &["asan", "msan", "tsan"]),
10771079
"x86_64-unknown-netbsd" => {
10781080
common_libs("netbsd", "x86_64", &["asan", "lsan", "msan", "tsan"])

Diff for: src/tools/compiletest/src/util.rs

+5
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
1313
"aarch64-apple-darwin",
1414
"aarch64-apple-ios",
1515
"aarch64-apple-ios-sim",
16+
"aarch64-apple-ios-macabi",
1617
"aarch64-unknown-fuchsia",
1718
"aarch64-linux-android",
1819
"aarch64-unknown-linux-gnu",
@@ -22,6 +23,7 @@ pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
2223
"i686-unknown-linux-gnu",
2324
"x86_64-apple-darwin",
2425
"x86_64-apple-ios",
26+
"x86_64-apple-ios-macabi",
2527
"x86_64-unknown-fuchsia",
2628
"x86_64-linux-android",
2729
"x86_64-unknown-freebsd",
@@ -60,6 +62,7 @@ pub const LSAN_SUPPORTED_TARGETS: &[&str] = &[
6062
// "aarch64-apple-darwin",
6163
"aarch64-unknown-linux-gnu",
6264
"x86_64-apple-darwin",
65+
"x86_64-apple-ios-macabi",
6366
"x86_64-unknown-linux-gnu",
6467
"s390x-unknown-linux-gnu",
6568
];
@@ -75,9 +78,11 @@ pub const TSAN_SUPPORTED_TARGETS: &[&str] = &[
7578
"aarch64-apple-darwin",
7679
"aarch64-apple-ios",
7780
"aarch64-apple-ios-sim",
81+
"aarch64-apple-ios-macabi",
7882
"aarch64-unknown-linux-gnu",
7983
"x86_64-apple-darwin",
8084
"x86_64-apple-ios",
85+
"x86_64-apple-ios-macabi",
8186
"x86_64-unknown-freebsd",
8287
"x86_64-unknown-linux-gnu",
8388
"s390x-unknown-linux-gnu",

0 commit comments

Comments
 (0)