about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGreg V <greg@unrelenting.technology>2020-07-20 19:07:23 +0300
committerGreg V <greg@unrelenting.technology>2020-08-09 17:51:41 +0300
commit2f39477ecffb0dd3a08bf76bfb44aafcdb4aae6a (patch)
treead6d34ae8b5884c2688101b754a8f4a2dbd3626a /src
parent8bc801b05019cd3e0ef19e6c4c028d55baa645d2 (diff)
downloadrust-2f39477ecffb0dd3a08bf76bfb44aafcdb4aae6a.tar.gz
rust-2f39477ecffb0dd3a08bf76bfb44aafcdb4aae6a.zip
Add sanitizer support on FreeBSD
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/native.rs1
-rw-r--r--src/ci/docker/host-x86_64/dist-x86_64-freebsd/Dockerfile2
-rw-r--r--src/librustc_codegen_ssa/back/link.rs1
-rw-r--r--src/librustc_session/session.rs11
-rw-r--r--src/tools/compiletest/src/util.rs11
5 files changed, 19 insertions, 7 deletions
diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs
index 48b2cc24d4c..51b87b43db0 100644
--- a/src/bootstrap/native.rs
+++ b/src/bootstrap/native.rs
@@ -786,6 +786,7 @@ fn supported_sanitizers(
         }
         "x86_64-apple-darwin" => darwin_libs("osx", &["asan", "lsan", "tsan"]),
         "x86_64-fuchsia" => common_libs("fuchsia", "x86_64", &["asan"]),
+        "x86_64-unknown-freebsd" => common_libs("freebsd", "x86_64", &["asan", "msan", "tsan"]),
         "x86_64-unknown-linux-gnu" => {
             common_libs("linux", "x86_64", &["asan", "lsan", "msan", "tsan"])
         }
diff --git a/src/ci/docker/host-x86_64/dist-x86_64-freebsd/Dockerfile b/src/ci/docker/host-x86_64/dist-x86_64-freebsd/Dockerfile
index 2372c0dad0a..f4c8b9fda61 100644
--- a/src/ci/docker/host-x86_64/dist-x86_64-freebsd/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-x86_64-freebsd/Dockerfile
@@ -29,5 +29,5 @@ ENV \
 
 ENV HOSTS=x86_64-unknown-freebsd
 
-ENV RUST_CONFIGURE_ARGS --enable-extended --enable-profiler --disable-docs
+ENV RUST_CONFIGURE_ARGS --enable-extended --enable-profiler --enable-sanitizers --disable-docs
 ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
diff --git a/src/librustc_codegen_ssa/back/link.rs b/src/librustc_codegen_ssa/back/link.rs
index 9191c68d453..86d63bf1ee3 100644
--- a/src/librustc_codegen_ssa/back/link.rs
+++ b/src/librustc_codegen_ssa/back/link.rs
@@ -818,6 +818,7 @@ fn link_sanitizer_runtime(sess: &Session, linker: &mut dyn Linker, name: &str) {
         "aarch64-fuchsia"
         | "aarch64-unknown-linux-gnu"
         | "x86_64-fuchsia"
+        | "x86_64-unknown-freebsd"
         | "x86_64-unknown-linux-gnu" => {
             let filename = format!("librustc{}_rt.{}.a", channel, name);
             let path = default_tlib.join(&filename);
diff --git a/src/librustc_session/session.rs b/src/librustc_session/session.rs
index 9191f7e8d76..66dbe53bac3 100644
--- a/src/librustc_session/session.rs
+++ b/src/librustc_session/session.rs
@@ -1453,14 +1453,19 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
         "aarch64-unknown-linux-gnu",
         "x86_64-apple-darwin",
         "x86_64-fuchsia",
+        "x86_64-unknown-freebsd",
         "x86_64-unknown-linux-gnu",
     ];
     const LSAN_SUPPORTED_TARGETS: &[&str] =
         &["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
     const MSAN_SUPPORTED_TARGETS: &[&str] =
-        &["aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu"];
-    const TSAN_SUPPORTED_TARGETS: &[&str] =
-        &["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
+        &["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
+    const TSAN_SUPPORTED_TARGETS: &[&str] = &[
+        "aarch64-unknown-linux-gnu",
+        "x86_64-apple-darwin",
+        "x86_64-unknown-freebsd",
+        "x86_64-unknown-linux-gnu",
+    ];
 
     // Sanitizers can only be used on some tested platforms.
     for s in sess.opts.debugging_opts.sanitizer {
diff --git a/src/tools/compiletest/src/util.rs b/src/tools/compiletest/src/util.rs
index ddd7941b114..a776bb0bfe4 100644
--- a/src/tools/compiletest/src/util.rs
+++ b/src/tools/compiletest/src/util.rs
@@ -87,6 +87,7 @@ pub const ASAN_SUPPORTED_TARGETS: &'static [&'static str] = &[
     "aarch64-unknown-linux-gnu",
     "x86_64-apple-darwin",
     "x86_64-fuchsia",
+    "x86_64-unknown-freebsd",
     "x86_64-unknown-linux-gnu",
 ];
 
@@ -94,10 +95,14 @@ pub const LSAN_SUPPORTED_TARGETS: &'static [&'static str] =
     &["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
 
 pub const MSAN_SUPPORTED_TARGETS: &'static [&'static str] =
-    &["aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu"];
+    &["aarch64-unknown-linux-gnu", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"];
 
-pub const TSAN_SUPPORTED_TARGETS: &'static [&'static str] =
-    &["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
+pub const TSAN_SUPPORTED_TARGETS: &'static [&'static str] = &[
+    "aarch64-unknown-linux-gnu",
+    "x86_64-apple-darwin",
+    "x86_64-unknown-freebsd",
+    "x86_64-unknown-linux-gnu",
+];
 
 const BIG_ENDIAN: &'static [&'static str] = &[
     "armebv7r",