Skip to content

Commit 2f39477

Browse files
committed
Add sanitizer support on FreeBSD
1 parent 8bc801b commit 2f39477

File tree

5 files changed

+19
-7
lines changed

5 files changed

+19
-7
lines changed

src/bootstrap/native.rs

+1
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,7 @@ fn supported_sanitizers(
786786
}
787787
"x86_64-apple-darwin" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
788788
"x86_64-fuchsia" => common_libs("fuchsia", "x86_64", &["asan"]),
789+
"x86_64-unknown-freebsd" => common_libs("freebsd", "x86_64", &["asan", "msan", "tsan"]),
789790
"x86_64-unknown-linux-gnu" => {
790791
common_libs("linux", "x86_64", &["asan", "lsan", "msan", "tsan"])
791792
}

src/ci/docker/host-x86_64/dist-x86_64-freebsd/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ ENV \
2929

3030
ENV HOSTS=x86_64-unknown-freebsd
3131

32-
ENV RUST_CONFIGURE_ARGS --enable-extended --enable-profiler --disable-docs
32+
ENV RUST_CONFIGURE_ARGS --enable-extended --enable-profiler --enable-sanitizers --disable-docs
3333
ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS

src/librustc_codegen_ssa/back/link.rs

+1
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,7 @@ fn link_sanitizer_runtime(sess: &Session, linker: &mut dyn Linker, name: &str) {
818818
"aarch64-fuchsia"
819819
| "aarch64-unknown-linux-gnu"
820820
| "x86_64-fuchsia"
821+
| "x86_64-unknown-freebsd"
821822
| "x86_64-unknown-linux-gnu" => {
822823
let filename = format!("librustc{}_rt.{}.a", channel, name);
823824
let path = default_tlib.join(&filename);

src/librustc_session/session.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -1453,14 +1453,19 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
14531453
"aarch64-unknown-linux-gnu",
14541454
"x86_64-apple-darwin",
14551455
"x86_64-fuchsia",
1456+
"x86_64-unknown-freebsd",
14561457
"x86_64-unknown-linux-gnu",
14571458
];
14581459
const LSAN_SUPPORTED_TARGETS: &[&str] =
14591460
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
14601461
const MSAN_SUPPORTED_TARGETS: &[&str] =
1461-
&["aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu"];
1462-
const TSAN_SUPPORTED_TARGETS: &[&str] =
1463-
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
1462+
&["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
1463+
const TSAN_SUPPORTED_TARGETS: &[&str] = &[
1464+
"aarch64-unknown-linux-gnu",
1465+
"x86_64-apple-darwin",
1466+
"x86_64-unknown-freebsd",
1467+
"x86_64-unknown-linux-gnu",
1468+
];
14641469

14651470
// Sanitizers can only be used on some tested platforms.
14661471
for s in sess.opts.debugging_opts.sanitizer {

src/tools/compiletest/src/util.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,22 @@ pub const ASAN_SUPPORTED_TARGETS: &'static [&'static str] = &[
8787
"aarch64-unknown-linux-gnu",
8888
"x86_64-apple-darwin",
8989
"x86_64-fuchsia",
90+
"x86_64-unknown-freebsd",
9091
"x86_64-unknown-linux-gnu",
9192
];
9293

9394
pub const LSAN_SUPPORTED_TARGETS: &'static [&'static str] =
9495
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
9596

9697
pub const MSAN_SUPPORTED_TARGETS: &'static [&'static str] =
97-
&["aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu"];
98+
&["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
9899

99-
pub const TSAN_SUPPORTED_TARGETS: &'static [&'static str] =
100-
&["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
100+
pub const TSAN_SUPPORTED_TARGETS: &'static [&'static str] = &[
101+
"aarch64-unknown-linux-gnu",
102+
"x86_64-apple-darwin",
103+
"x86_64-unknown-freebsd",
104+
"x86_64-unknown-linux-gnu",
105+
];
101106

102107
const BIG_ENDIAN: &'static [&'static str] = &[
103108
"armebv7r",

0 commit comments

Comments
 (0)