]> git.lizzy.rs Git - rust.git/commitdiff
Support sanitizers on aarch64-unknown-linux-gnu
authorTomasz Miąsko <tomasz.miasko@gmail.com>
Thu, 4 Jun 2020 00:00:00 +0000 (00:00 +0000)
committerTomasz Miąsko <tomasz.miasko@gmail.com>
Sat, 20 Jun 2020 07:48:14 +0000 (09:48 +0200)
src/librustc_codegen_ssa/back/link.rs
src/librustc_session/session.rs
src/test/ui/sanitize/unsupported-target.stderr
src/tools/compiletest/src/util.rs

index c7a58d9f2a2f6de03afc3cee6d02c7e46d6cac83..6c995be913c9e94c5528eef7a4bd6d91f75d392b 100644 (file)
@@ -804,7 +804,10 @@ fn link_sanitizer_runtime(sess: &Session, linker: &mut dyn Linker, name: &str) {
             linker.args(&["-Wl,-rpath", "-Xlinker", rpath]);
             linker.link_dylib(Symbol::intern(&libname));
         }
-        "x86_64-unknown-linux-gnu" | "x86_64-fuchsia" | "aarch64-fuchsia" => {
+        "aarch64-fuchsia"
+        | "aarch64-unknown-linux-gnu"
+        | "x86_64-fuchsia"
+        | "x86_64-unknown-linux-gnu" => {
             let filename = format!("librustc{}_rt.{}.a", channel, name);
             let path = default_tlib.join(&filename);
             linker.link_whole_rlib(&path);
index 90cd6ae5bf99ffdc5c025460cd6e67570684eddf..2ea312c42dc646757fe81c93cbfcba17409d68f2 100644 (file)
@@ -1349,11 +1349,19 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
         );
     }
 
-    const ASAN_SUPPORTED_TARGETS: &[&str] =
-        &["aarch64-fuchsia", "x86_64-apple-darwin", "x86_64-fuchsia", "x86_64-unknown-linux-gnu"];
-    const LSAN_SUPPORTED_TARGETS: &[&str] = &["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
-    const MSAN_SUPPORTED_TARGETS: &[&str] = &["x86_64-unknown-linux-gnu"];
-    const TSAN_SUPPORTED_TARGETS: &[&str] = &["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
+    const ASAN_SUPPORTED_TARGETS: &[&str] = &[
+        "aarch64-fuchsia",
+        "aarch64-unknown-linux-gnu",
+        "x86_64-apple-darwin",
+        "x86_64-fuchsia",
+        "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"];
 
     // Sanitizers can only be used on some tested platforms.
     for s in sess.opts.debugging_opts.sanitizer {
index f9434bc9512d01d4d7f5f14273fca74bb0ca76c1..f5961a11b1f1c4a741e4cff730f20ab3cbd152b5 100644 (file)
@@ -1,4 +1,4 @@
-error: `-Zsanitizer=leak` only works with targets: x86_64-apple-darwin, x86_64-unknown-linux-gnu
+error: `-Zsanitizer=leak` only works with targets: aarch64-unknown-linux-gnu, x86_64-apple-darwin, x86_64-unknown-linux-gnu
 
 error: aborting due to previous error
 
index 0d56bf2d20fcbf8441da21523ced18faa79332d0..0437ff8c9440a3cbfe8b59134c1491125584fe4e 100644 (file)
     ("xcore", "xcore"),
 ];
 
-pub const ASAN_SUPPORTED_TARGETS: &'static [&'static str] =
-    &["aarch64-fuchsia", "x86_64-apple-darwin", "x86_64-fuchsia", "x86_64-unknown-linux-gnu"];
+pub const ASAN_SUPPORTED_TARGETS: &'static [&'static str] = &[
+    "aarch64-fuchsia",
+    "aarch64-unknown-linux-gnu",
+    "x86_64-apple-darwin",
+    "x86_64-fuchsia",
+    "x86_64-unknown-linux-gnu",
+];
 
 pub const LSAN_SUPPORTED_TARGETS: &'static [&'static str] =
-    &["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
+    &["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
 
-pub const MSAN_SUPPORTED_TARGETS: &'static [&'static str] = &["x86_64-unknown-linux-gnu"];
+pub const MSAN_SUPPORTED_TARGETS: &'static [&'static str] =
+    &["aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu"];
 
 pub const TSAN_SUPPORTED_TARGETS: &'static [&'static str] =
-    &["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
+    &["aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu"];
 
 pub fn matches_os(triple: &str, name: &str) -> bool {
     // For the wasm32 bare target we ignore anything also ignored on emscripten