diff options
| author | Laine Taffin Altman <alexanderaltman@me.com> | 2025-09-09 22:27:37 -0700 |
|---|---|---|
| committer | Laine Taffin Altman <alexanderaltman@me.com> | 2025-09-13 23:25:29 -0700 |
| commit | d8cc5757ba92085c4fe19e86c4293bb619b2385f (patch) | |
| tree | 2c47cb328925147f1f0a07f213dc100ad27e7b41 /library/std_detect/src | |
| parent | 60a5372753460ef0db67c2307308a741b17771f3 (diff) | |
| download | rust-d8cc5757ba92085c4fe19e86c4293bb619b2385f.tar.gz rust-d8cc5757ba92085c4fe19e86c4293bb619b2385f.zip | |
std_detect Darwin AArch64: add new-style detection for FEAT_CRC32
Now that this feature has a standard identifier, Darwin has started exposing it accordingly, in addition to the existing less-standard way. Check both, and enable the `crc` feature if either identifier for it is present to ensure backwards and forwards compatibility.
Diffstat (limited to 'library/std_detect/src')
| -rw-r--r-- | library/std_detect/src/detect/os/darwin/aarch64.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/library/std_detect/src/detect/os/darwin/aarch64.rs b/library/std_detect/src/detect/os/darwin/aarch64.rs index f5409361d93..89521c1c6af 100644 --- a/library/std_detect/src/detect/os/darwin/aarch64.rs +++ b/library/std_detect/src/detect/os/darwin/aarch64.rs @@ -37,12 +37,13 @@ pub(crate) fn detect_features() -> cache::Initializer { // Armv8.0 features not using the standard identifiers let fp = _sysctlbyname(c"hw.optional.floatingpoint"); let asimd = _sysctlbyname(c"hw.optional.AdvSIMD"); - let crc = _sysctlbyname(c"hw.optional.armv8_crc32"); + let crc_old = _sysctlbyname(c"hw.optional.armv8_crc32"); // Armv8 and Armv9 features using the standard identifiers let aes = _sysctlbyname(c"hw.optional.arm.FEAT_AES"); let bf16 = _sysctlbyname(c"hw.optional.arm.FEAT_BF16"); let bti = _sysctlbyname(c"hw.optional.arm.FEAT_BTI"); + let crc = _sysctlbyname(c"hw.optional.arm.FEAT_CRC32"); let cssc = _sysctlbyname(c"hw.optional.arm.FEAT_CSSC"); let dit = _sysctlbyname(c"hw.optional.arm.FEAT_DIT"); let dpb = _sysctlbyname(c"hw.optional.arm.FEAT_DPB"); @@ -111,7 +112,7 @@ pub(crate) fn detect_features() -> cache::Initializer { enable_feature(Feature::asimd, asimd); enable_feature(Feature::bf16, bf16); enable_feature(Feature::bti, bti); - enable_feature(Feature::crc, crc); + enable_feature(Feature::crc, crc_old || crc); enable_feature(Feature::cssc, cssc); enable_feature(Feature::dit, dit); enable_feature(Feature::dotprod, dotprod); |
