aboutsummaryrefslogtreecommitdiff
path: root/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'build.rs')
-rw-r--r--build.rs28
1 files changed, 7 insertions, 21 deletions
diff --git a/build.rs b/build.rs
index 617162f..c71c231 100644
--- a/build.rs
+++ b/build.rs
@@ -1,24 +1,12 @@
// The rustc-cfg listed below are considered public API, but it is *unstable*
// and outside of the normal semver guarantees:
//
-// - `crossbeam_no_atomic_cas`
-// Assume the target does *not* support atomic CAS operations.
-// This is usually detected automatically by the build script, but you may
-// need to enable it manually when building for custom targets or using
-// non-cargo build systems that don't run the build script.
-//
// - `crossbeam_no_atomic`
// Assume the target does *not* support any atomic operations.
// This is usually detected automatically by the build script, but you may
// need to enable it manually when building for custom targets or using
// non-cargo build systems that don't run the build script.
//
-// - `crossbeam_no_atomic_64`
-// Assume the target does *not* support AtomicU64/AtomicI64.
-// This is usually detected automatically by the build script, but you may
-// need to enable it manually when building for custom targets or using
-// non-cargo build systems that don't run the build script.
-//
// With the exceptions mentioned above, the rustc-cfg emitted by the build
// script are *not* public API.
@@ -30,6 +18,8 @@ include!("no_atomic.rs");
include!("build-common.rs");
fn main() {
+ println!("cargo:rerun-if-changed=no_atomic.rs");
+
let target = match env::var("TARGET") {
Ok(target) => convert_custom_linux_target(target),
Err(e) => {
@@ -45,17 +35,13 @@ fn main() {
// Note that this is `no_`*, not `has_*`. This allows treating as the latest
// stable rustc is used when the build script doesn't run. This is useful
// for non-cargo build systems that don't run the build script.
- if NO_ATOMIC_CAS.contains(&&*target) {
- println!("cargo:rustc-cfg=crossbeam_no_atomic_cas");
- }
if NO_ATOMIC.contains(&&*target) {
println!("cargo:rustc-cfg=crossbeam_no_atomic");
- println!("cargo:rustc-cfg=crossbeam_no_atomic_64");
- } else if NO_ATOMIC_64.contains(&&*target) {
- println!("cargo:rustc-cfg=crossbeam_no_atomic_64");
- } else {
- // Otherwise, assuming `"max-atomic-width" == 64` or `"max-atomic-width" == 128`.
}
- println!("cargo:rerun-if-changed=no_atomic.rs");
+ // `cfg(sanitize = "..")` is not stabilized.
+ let sanitize = env::var("CARGO_CFG_SANITIZE").unwrap_or_default();
+ if sanitize.contains("thread") {
+ println!("cargo:rustc-cfg=crossbeam_sanitize_thread");
+ }
}