Skip to content

Commit 2851c9f

Browse files
committed
Support sanitizers on aarch64-unknown-linux-gnu
1 parent 033013c commit 2851c9f

File tree

4 files changed

+29
-12
lines changed

4 files changed

+29
-12
lines changed

src/librustc_codegen_ssa/back/link.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -804,7 +804,10 @@ fn link_sanitizer_runtime(sess: &Session, linker: &mut dyn Linker, name: &str) {
804804
linker.args(&["-Wl,-rpath", "-Xlinker", rpath]);
805805
linker.link_dylib(Symbol::intern(&libname));
806806
}
807-
"x86_64-unknown-linux-gnu" | "x86_64-fuchsia" | "aarch64-fuchsia" => {
807+
"aarch64-fuchsia"
808+
| "aarch64-unknown-linux-gnu"
809+
| "x86_64-fuchsia"
810+
| "x86_64-unknown-linux-gnu" => {
808811
let filename = format!("librustc{}_rt.{}.a", channel, name);
809812
let path = default_tlib.join(&filename);
810813
linker.link_whole_rlib(&path);

src/librustc_session/session.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,11 +1349,19 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
13491349
);
13501350
}
13511351

1352-
const ASAN_SUPPORTED_TARGETS: &[&str] =
1353-
&["aarch64-fuchsia", "x86_64-apple-darwin", "x86_64-fuchsia", "x86_64-unknown-linux-gnu"];
1354-
const LSAN_SUPPORTED_TARGETS: &[&str] = &["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
1355-
const MSAN_SUPPORTED_TARGETS: &[&str] = &["x86_64-unknown-linux-gnu"];
1356-
const TSAN_SUPPORTED_TARGETS: &[&str] = &["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
1352+
const ASAN_SUPPORTED_TARGETS: &[&str] = &[
1353+
"aarch64-fuchsia",
1354+
"aarch64-unknown-linux-gnu",
1355+
"x86_64-apple-darwin",
1356+
"x86_64-fuchsia",
1357+
"x86_64-unknown-linux-gnu",
1358+
];
1359+
const LSAN_SUPPORTED_TARGETS: &[&str] =
1360+
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
1361+
const MSAN_SUPPORTED_TARGETS: &[&str] =
1362+
&["aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu"];
1363+
const TSAN_SUPPORTED_TARGETS: &[&str] =
1364+
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
13571365

13581366
// Sanitizers can only be used on some tested platforms.
13591367
for s in sess.opts.debugging_opts.sanitizer {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
error: `-Zsanitizer=leak` only works with targets: x86_64-apple-darwin, x86_64-unknown-linux-gnu
1+
error: `-Zsanitizer=leak` only works with targets: aarch64-unknown-linux-gnu, x86_64-apple-darwin, x86_64-unknown-linux-gnu
22

33
error: aborting due to previous error
44

src/tools/compiletest/src/util.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,22 @@ const ARCH_TABLE: &'static [(&'static str, &'static str)] = &[
8282
("xcore", "xcore"),
8383
];
8484

85-
pub const ASAN_SUPPORTED_TARGETS: &'static [&'static str] =
86-
&["aarch64-fuchsia", "x86_64-apple-darwin", "x86_64-fuchsia", "x86_64-unknown-linux-gnu"];
85+
pub const ASAN_SUPPORTED_TARGETS: &'static [&'static str] = &[
86+
"aarch64-fuchsia",
87+
"aarch64-unknown-linux-gnu",
88+
"x86_64-apple-darwin",
89+
"x86_64-fuchsia",
90+
"x86_64-unknown-linux-gnu",
91+
];
8792

8893
pub const LSAN_SUPPORTED_TARGETS: &'static [&'static str] =
89-
&["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
94+
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
9095

91-
pub const MSAN_SUPPORTED_TARGETS: &'static [&'static str] = &["x86_64-unknown-linux-gnu"];
96+
pub const MSAN_SUPPORTED_TARGETS: &'static [&'static str] =
97+
&["aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu"];
9298

9399
pub const TSAN_SUPPORTED_TARGETS: &'static [&'static str] =
94-
&["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
100+
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
95101

96102
pub fn matches_os(triple: &str, name: &str) -> bool {
97103
// For the wasm32 bare target we ignore anything also ignored on emscripten

0 commit comments

Comments
 (0)