Skip to content

Commit 5940c19

Browse files
committed
Enable ASan, TSan, UBSan for aarch64-apple-darwin.
1 parent 58d2bad commit 5940c19

File tree

4 files changed

+19
-5
lines changed

4 files changed

+19
-5
lines changed

compiler/rustc_codegen_ssa/src/back/link.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -819,7 +819,8 @@ fn link_sanitizer_runtime(sess: &Session, linker: &mut dyn Linker, name: &str) {
819819
.unwrap_or_default();
820820

821821
match sess.opts.target_triple.triple() {
822-
"x86_64-apple-darwin" => {
822+
"aarch64-apple-darwin"
823+
| "x86_64-apple-darwin" => {
823824
// On Apple platforms, the sanitizer is always built as a dylib, and
824825
// LLVM will link to `@rpath/*.dylib`, so we need to specify an
825826
// rpath to the library as well (the rpath should be absolute, see

compiler/rustc_session/src/session.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,18 +1520,24 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
15201520
}
15211521

15221522
const ASAN_SUPPORTED_TARGETS: &[&str] = &[
1523+
"aarch64-apple-darwin",
15231524
"aarch64-fuchsia",
15241525
"aarch64-unknown-linux-gnu",
15251526
"x86_64-apple-darwin",
15261527
"x86_64-fuchsia",
15271528
"x86_64-unknown-freebsd",
15281529
"x86_64-unknown-linux-gnu",
15291530
];
1530-
const LSAN_SUPPORTED_TARGETS: &[&str] =
1531-
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
1531+
const LSAN_SUPPORTED_TARGETS: &[&str] = &[
1532+
"aarch64-apple-darwin",
1533+
"aarch64-unknown-linux-gnu",
1534+
"x86_64-apple-darwin",
1535+
"x86_64-unknown-linux-gnu",
1536+
];
15321537
const MSAN_SUPPORTED_TARGETS: &[&str] =
15331538
&["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
15341539
const TSAN_SUPPORTED_TARGETS: &[&str] = &[
1540+
"aarch64-apple-darwin",
15351541
"aarch64-unknown-linux-gnu",
15361542
"x86_64-apple-darwin",
15371543
"x86_64-unknown-freebsd",

src/bootstrap/native.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,7 @@ fn supported_sanitizers(
802802
};
803803

804804
match &*target.triple {
805+
"aarch64-apple-darwin" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
805806
"aarch64-fuchsia" => common_libs("fuchsia", "aarch64", &["asan"]),
806807
"aarch64-unknown-linux-gnu" => {
807808
common_libs("linux", "aarch64", &["asan", "lsan", "msan", "tsan"])

src/tools/compiletest/src/util.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ const ARCH_TABLE: &[(&str, &str)] = &[
8282
];
8383

8484
pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
85+
"aarch64-apple-darwin",
8586
"aarch64-fuchsia",
8687
"aarch64-unknown-linux-gnu",
8788
"x86_64-apple-darwin",
@@ -90,13 +91,18 @@ pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
9091
"x86_64-unknown-linux-gnu",
9192
];
9293

93-
pub const LSAN_SUPPORTED_TARGETS: &[&str] =
94-
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
94+
pub const LSAN_SUPPORTED_TARGETS: &[&str] = &[
95+
"aarch64-apple-darwin",
96+
"aarch64-unknown-linux-gnu",
97+
"x86_64-apple-darwin",
98+
"x86_64-unknown-linux-gnu",
99+
];
95100

96101
pub const MSAN_SUPPORTED_TARGETS: &[&str] =
97102
&["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
98103

99104
pub const TSAN_SUPPORTED_TARGETS: &[&str] = &[
105+
"aarch64-apple-darwin",
100106
"aarch64-unknown-linux-gnu",
101107
"x86_64-apple-darwin",
102108
"x86_64-unknown-freebsd",

0 commit comments

Comments
 (0)