diff --git a/Cargo.toml b/Cargo.toml index 9db0c1df48..5cdebc7119 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,8 @@ exclude = [ "test/**/*" ] +build = "build.rs" + [features] eventfd = [] execvpe = [] @@ -24,6 +26,10 @@ libc = "0.2.8" bitflags = "0.4" cfg-if = "0.1.0" +[build-dependencies] +rustc_version = "0.1.7" +semver = "0.1.20" # Old version for compatibility with rustc_version. + [dev-dependencies] rand = "0.3.8" tempdir = "0.3" diff --git a/build.rs b/build.rs new file mode 100644 index 0000000000..084bb0d709 --- /dev/null +++ b/build.rs @@ -0,0 +1,10 @@ +extern crate rustc_version; +extern crate semver; + +use semver::Version; + +fn main() { + if rustc_version::version() >= Version::parse("1.6.0").unwrap() { + println!("cargo:rustc-cfg=raw_pointer_derive_allowed"); + } +} diff --git a/src/sys/signal.rs b/src/sys/signal.rs index 2b1fcd4e43..6a1dd96735 100644 --- a/src/sys/signal.rs +++ b/src/sys/signal.rs @@ -154,7 +154,7 @@ impl AsRef for SigSet { } #[allow(unknown_lints)] -#[allow(raw_pointer_derive)] +#[cfg_attr(not(raw_pointer_derive_allowed), allow(raw_pointer_derive))] #[derive(Clone, Copy, PartialEq)] pub enum SigHandler { SigDfl,