Fix building std_detect as a dependency of std (#1089)
This commit is contained in:
parent
7947cb8bac
commit
72dda3aae0
3 changed files with 15 additions and 4 deletions
|
|
@ -25,12 +25,22 @@ maintenance = { status = "experimental" }
|
|||
libc = { version = "0.2", optional = true, default-features = false }
|
||||
cfg-if = "0.1.10"
|
||||
|
||||
# When built as part of libstd
|
||||
core = { version = "1.0.0", optional = true, package = "rustc-std-workspace-core" }
|
||||
compiler_builtins = { version = "0.1.2", optional = true }
|
||||
alloc = { version = "1.0.0", optional = true, package = "rustc-std-workspace-alloc" }
|
||||
|
||||
[dev-dependencies]
|
||||
auxv = "0.3.3"
|
||||
cupid = "0.6.0"
|
||||
|
||||
[features]
|
||||
default = [ "std_detect_dlsym_getauxval", "std_detect_file_io" ]
|
||||
std_detect_file_io = []
|
||||
std_detect_file_io = [ "libc" ]
|
||||
std_detect_dlsym_getauxval = [ "libc" ]
|
||||
std_detect_env_override = []
|
||||
std_detect_env_override = [ "libc" ]
|
||||
rustc-dep-of-std = [
|
||||
"core",
|
||||
"compiler_builtins",
|
||||
"alloc",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ pub(crate) fn auxv() -> Result<AuxVec, ()> {
|
|||
|
||||
#[cfg(not(feature = "std_detect_dlsym_getauxval"))]
|
||||
{
|
||||
let hwcap = unsafe { libc::getauxval(AT_HWCAP) };
|
||||
let hwcap = unsafe { libc::getauxval(AT_HWCAP as libc::c_ulong) as usize };
|
||||
|
||||
// Targets with only AT_HWCAP:
|
||||
#[cfg(any(target_arch = "aarch64", target_arch = "mips", target_arch = "mips64"))]
|
||||
|
|
@ -106,7 +106,7 @@ pub(crate) fn auxv() -> Result<AuxVec, ()> {
|
|||
target_arch = "powerpc64"
|
||||
))]
|
||||
{
|
||||
let hwcap2 = unsafe { libc::getauxval(AT_HWCAP2) };
|
||||
let hwcap2 = unsafe { libc::getauxval(AT_HWCAP2 as libc::c_ulong) as usize };
|
||||
if hwcap != 0 && hwcap2 != 0 {
|
||||
return Ok(AuxVec { hwcap, hwcap2 });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#![cfg_attr(feature = "std_detect_file_io", feature(vec_spare_capacity))]
|
||||
#![no_std]
|
||||
|
||||
#[cfg_attr(feature = "rustc-dep-of-std", allow(unused_extern_crates))]
|
||||
#[cfg(feature = "std_detect_file_io")]
|
||||
extern crate alloc;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue