Enable ASan, TSan, UBSan for aarch64-apple-darwin.
This commit is contained in:
parent
58d2bad9f7
commit
5940c19315
4 changed files with 19 additions and 5 deletions
|
@ -819,7 +819,8 @@ fn link_sanitizer_runtime(sess: &Session, linker: &mut dyn Linker, name: &str) {
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
match sess.opts.target_triple.triple() {
|
match sess.opts.target_triple.triple() {
|
||||||
"x86_64-apple-darwin" => {
|
"aarch64-apple-darwin"
|
||||||
|
| "x86_64-apple-darwin" => {
|
||||||
// On Apple platforms, the sanitizer is always built as a dylib, and
|
// On Apple platforms, the sanitizer is always built as a dylib, and
|
||||||
// LLVM will link to `@rpath/*.dylib`, so we need to specify an
|
// LLVM will link to `@rpath/*.dylib`, so we need to specify an
|
||||||
// rpath to the library as well (the rpath should be absolute, see
|
// rpath to the library as well (the rpath should be absolute, see
|
||||||
|
|
|
@ -1520,6 +1520,7 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const ASAN_SUPPORTED_TARGETS: &[&str] = &[
|
const ASAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||||
|
"aarch64-apple-darwin",
|
||||||
"aarch64-fuchsia",
|
"aarch64-fuchsia",
|
||||||
"aarch64-unknown-linux-gnu",
|
"aarch64-unknown-linux-gnu",
|
||||||
"x86_64-apple-darwin",
|
"x86_64-apple-darwin",
|
||||||
|
@ -1527,11 +1528,16 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
|
||||||
"x86_64-unknown-freebsd",
|
"x86_64-unknown-freebsd",
|
||||||
"x86_64-unknown-linux-gnu",
|
"x86_64-unknown-linux-gnu",
|
||||||
];
|
];
|
||||||
const LSAN_SUPPORTED_TARGETS: &[&str] =
|
const LSAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||||
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
|
"aarch64-apple-darwin",
|
||||||
|
"aarch64-unknown-linux-gnu",
|
||||||
|
"x86_64-apple-darwin",
|
||||||
|
"x86_64-unknown-linux-gnu",
|
||||||
|
];
|
||||||
const MSAN_SUPPORTED_TARGETS: &[&str] =
|
const MSAN_SUPPORTED_TARGETS: &[&str] =
|
||||||
&["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
|
&["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
|
||||||
const TSAN_SUPPORTED_TARGETS: &[&str] = &[
|
const TSAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||||
|
"aarch64-apple-darwin",
|
||||||
"aarch64-unknown-linux-gnu",
|
"aarch64-unknown-linux-gnu",
|
||||||
"x86_64-apple-darwin",
|
"x86_64-apple-darwin",
|
||||||
"x86_64-unknown-freebsd",
|
"x86_64-unknown-freebsd",
|
||||||
|
|
|
@ -802,6 +802,7 @@ fn supported_sanitizers(
|
||||||
};
|
};
|
||||||
|
|
||||||
match &*target.triple {
|
match &*target.triple {
|
||||||
|
"aarch64-apple-darwin" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
|
||||||
"aarch64-fuchsia" => common_libs("fuchsia", "aarch64", &["asan"]),
|
"aarch64-fuchsia" => common_libs("fuchsia", "aarch64", &["asan"]),
|
||||||
"aarch64-unknown-linux-gnu" => {
|
"aarch64-unknown-linux-gnu" => {
|
||||||
common_libs("linux", "aarch64", &["asan", "lsan", "msan", "tsan"])
|
common_libs("linux", "aarch64", &["asan", "lsan", "msan", "tsan"])
|
||||||
|
|
|
@ -82,6 +82,7 @@ const ARCH_TABLE: &[(&str, &str)] = &[
|
||||||
];
|
];
|
||||||
|
|
||||||
pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
|
pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||||
|
"aarch64-apple-darwin",
|
||||||
"aarch64-fuchsia",
|
"aarch64-fuchsia",
|
||||||
"aarch64-unknown-linux-gnu",
|
"aarch64-unknown-linux-gnu",
|
||||||
"x86_64-apple-darwin",
|
"x86_64-apple-darwin",
|
||||||
|
@ -90,13 +91,18 @@ pub const ASAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||||
"x86_64-unknown-linux-gnu",
|
"x86_64-unknown-linux-gnu",
|
||||||
];
|
];
|
||||||
|
|
||||||
pub const LSAN_SUPPORTED_TARGETS: &[&str] =
|
pub const LSAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||||
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
|
"aarch64-apple-darwin",
|
||||||
|
"aarch64-unknown-linux-gnu",
|
||||||
|
"x86_64-apple-darwin",
|
||||||
|
"x86_64-unknown-linux-gnu",
|
||||||
|
];
|
||||||
|
|
||||||
pub const MSAN_SUPPORTED_TARGETS: &[&str] =
|
pub const MSAN_SUPPORTED_TARGETS: &[&str] =
|
||||||
&["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
|
&["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
|
||||||
|
|
||||||
pub const TSAN_SUPPORTED_TARGETS: &[&str] = &[
|
pub const TSAN_SUPPORTED_TARGETS: &[&str] = &[
|
||||||
|
"aarch64-apple-darwin",
|
||||||
"aarch64-unknown-linux-gnu",
|
"aarch64-unknown-linux-gnu",
|
||||||
"x86_64-apple-darwin",
|
"x86_64-apple-darwin",
|
||||||
"x86_64-unknown-freebsd",
|
"x86_64-unknown-freebsd",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue