diff options
author | Yuki Okushi <jtitor@2k36.org> | 2022-06-08 17:40:08 +0900 |
---|---|---|
committer | Yuki Okushi <jtitor@2k36.org> | 2022-06-08 17:42:05 +0900 |
commit | 576f77814cff61d0ed7e30f2a7d0f0f696001bd5 (patch) | |
tree | e59d16110d1a88a04ae4955c8bdd25a8b4a98226 | |
parent | e534fd88e3b33f45937700b7f50ab02a34fffe2a (diff) | |
download | rust-libc-576f77814cff61d0ed7e30f2a7d0f0f696001bd5.tar.gz |
Enable `libc_const_extern_fn` implicitly from Rust 1.62
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | build.rs | 15 | ||||
-rw-r--r-- | src/lib.rs | 2 |
3 files changed, 15 insertions, 6 deletions
@@ -35,7 +35,8 @@ libc = "0.2" This feature derives `Debug`, `Eq`, `Hash`, and `PartialEq`. * `const-extern-fn`: Changes some `extern fn`s into `const extern fn`s. - This feature requires a nightly rustc. + If you use Rust >= 1.62, this feature is implicitly enabled. + Otherwise it requires a nightly rustc. * **deprecated**: `use_std` is deprecated, and is equivalent to `std`. @@ -53,6 +54,7 @@ newer Rust features are only available on newer Rust toolchains: | `core::ffi::c_void` | 1.30.0 | | `repr(packed(N))` | 1.33.0 | | `cfg(target_vendor)` | 1.33.0 | +| `const-extern-fn` | 1.62.0 | ## Platform support @@ -97,11 +97,18 @@ fn main() { println!("cargo:rustc-cfg=libc_thread_local"); } - if const_extern_fn_cargo_feature { - if !is_nightly || rustc_minor_ver < 40 { - panic!("const-extern-fn requires a nightly compiler >= 1.40") - } + // Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C". + if rustc_minor_ver >= 62 { println!("cargo:rustc-cfg=libc_const_extern_fn"); + } else { + // Rust < 1.62.0 requires a crate feature and feature gate. + if const_extern_fn_cargo_feature { + if !is_nightly || rustc_minor_ver < 40 { + panic!("const-extern-fn requires a nightly compiler >= 1.40"); + } + println!("cargo:rustc-cfg=libc_const_extern_fn_unstable"); + println!("cargo:rustc-cfg=libc_const_extern_fn"); + } } } diff --git a/src/lib.rs b/src/lib.rs index c0ef813283..3ad346a429 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -30,7 +30,7 @@ feature = "rustc-dep-of-std", feature(native_link_modifiers, native_link_modifiers_bundle) )] -#![cfg_attr(libc_const_extern_fn, feature(const_extern_fn))] +#![cfg_attr(libc_const_extern_fn_unstable, feature(const_extern_fn))] #[macro_use] mod macros; |