Index: lang/rust/Makefile =================================================================== --- lang/rust/Makefile +++ lang/rust/Makefile @@ -2,10 +2,10 @@ # $FreeBSD$ PORTNAME= rust -PORTVERSION?= 1.37.0 +PORTVERSION?= 1.38.0 PORTREVISION?= 0 CATEGORIES= lang -MASTER_SITES= https://static.rust-lang.org/dist/:src \ +MASTER_SITES= https://dev-static.rust-lang.org/dist/:src \ https://static.rust-lang.org/dist/:rust_bootstrap \ LOCAL/tobik/rust:rust_bootstrap \ https://static.rust-lang.org/dist/:cargo_bootstrap \ @@ -29,7 +29,7 @@ LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-APACHE LICENSE_FILE_MIT= ${WRKSRC}/LICENSE-MIT -ONLY_FOR_ARCHS?= aarch64 amd64 armv6 armv7 i386 powerpc64 +ONLY_FOR_ARCHS?= amd64 armv6 armv7 i386 powerpc64 ONLY_FOR_ARCHS_REASON= requires prebuilt bootstrap compiler BUILD_DEPENDS= cmake:devel/cmake \ @@ -38,7 +38,7 @@ libgit2.so:devel/libgit2 \ libssh2.so:security/libssh2 -USES= libedit pkgconfig python:2.7,build ssl tar:xz +USES= libedit pkgconfig python:build ssl tar:xz CONFLICTS_INSTALL?= rust-nightly @@ -54,9 +54,9 @@ GDB_RUN_DEPENDS= ${LOCALBASE}/bin/gdb:devel/gdb # See WRKSRC/src/stage0.txt for the date and version values. -BOOTSTRAPS_DATE?= 2019-07-04 -RUST_BOOTSTRAP_VERSION?= 1.36.0 -CARGO_BOOTSTRAP_VERSION?= 0.37.0 +BOOTSTRAPS_DATE?= 2019-08-15 +RUST_BOOTSTRAP_VERSION?= 1.37.0 +CARGO_BOOTSTRAP_VERSION?= 0.38.0 BOOTSTRAPS_SUFFIX?= ${BOOTSTRAPS_SUFFIX_${ARCH}} BOOTSTRAPS_SUFFIX_powerpc64?= -elfv1 Index: lang/rust/distinfo =================================================================== --- lang/rust/distinfo +++ lang/rust/distinfo @@ -1,47 +1,41 @@ -TIMESTAMP = 1567322590 -SHA256 (rust/rustc-1.37.0-src.tar.xz) = 10abffac50a729cf74cef6dd03193a2f4647541bd19ee9281be9e5b12ca8cdfd -SIZE (rust/rustc-1.37.0-src.tar.xz) = 98654252 -SHA256 (rust/2019-07-04/rustc-1.36.0-aarch64-unknown-freebsd.tar.gz) = 8eec2d7750c96030b6b95eec2bc9ed1b7194780628d6017f615c2effdcc3b928 -SIZE (rust/2019-07-04/rustc-1.36.0-aarch64-unknown-freebsd.tar.gz) = 68458486 -SHA256 (rust/2019-07-04/rust-std-1.36.0-aarch64-unknown-freebsd.tar.gz) = 3c1e46be0c1d42bec5538eccc07e948d65743a160417856bf6d5885cede31c98 -SIZE (rust/2019-07-04/rust-std-1.36.0-aarch64-unknown-freebsd.tar.gz) = 77059731 -SHA256 (rust/2019-07-04/cargo-0.37.0-aarch64-unknown-freebsd.tar.gz) = 2fb56bb2a1420ea66e6f75f37d1c0d808c2943401d70650696d463ad90e78af9 -SIZE (rust/2019-07-04/cargo-0.37.0-aarch64-unknown-freebsd.tar.gz) = 6144087 -SHA256 (rust/2019-07-04/rustc-1.36.0-x86_64-unknown-freebsd.tar.gz) = c2dd0cec49b054ed9439762fb31555b8df9a3d81747b194f7d3afbc6d8adb8de -SIZE (rust/2019-07-04/rustc-1.36.0-x86_64-unknown-freebsd.tar.gz) = 79088915 -SHA256 (rust/2019-07-04/rust-std-1.36.0-x86_64-unknown-freebsd.tar.gz) = a2a923cbfa3481af66c22673cac38e7cb70e26333318ad59c27b8b6ac16a84fe -SIZE (rust/2019-07-04/rust-std-1.36.0-x86_64-unknown-freebsd.tar.gz) = 87112148 -SHA256 (rust/2019-07-04/cargo-0.37.0-x86_64-unknown-freebsd.tar.gz) = ae237412a5de0d01cc8aa065e00f604e72fadf85dd350d16b73a15d6ff7393f2 -SIZE (rust/2019-07-04/cargo-0.37.0-x86_64-unknown-freebsd.tar.gz) = 6651104 -SHA256 (rust/2019-07-04/rustc-1.36.0-armv6-unknown-freebsd.tar.gz) = 30af064165ada8defaa8bd1e63265944fb37c69172249723bd2747203ad7cbf0 -SIZE (rust/2019-07-04/rustc-1.36.0-armv6-unknown-freebsd.tar.gz) = 71286638 -SHA256 (rust/2019-07-04/rust-std-1.36.0-armv6-unknown-freebsd.tar.gz) = 6c35036131a110c858e7cb83657cd1b25ffae4cc65708f4e5a6e31325ef96edd -SIZE (rust/2019-07-04/rust-std-1.36.0-armv6-unknown-freebsd.tar.gz) = 79061925 -SHA256 (rust/2019-07-04/cargo-0.37.0-armv6-unknown-freebsd.tar.gz) = e4fa3e76ab448eb8bfdf323b4de976a6f07c35d0eca91cc2bf480b41faa157ec -SIZE (rust/2019-07-04/cargo-0.37.0-armv6-unknown-freebsd.tar.gz) = 5544892 +TIMESTAMP = 1569328561 +SHA256 (rust/rustc-1.38.0-src.tar.xz) = 3a7991aa4cb44ef941d71636e45a95468b520dc6fc7cf725364925bd3e3d3a34 +SIZE (rust/rustc-1.38.0-src.tar.xz) = 96163304 +SHA256 (rust/2019-08-15/rustc-1.37.0-x86_64-unknown-freebsd.tar.gz) = a4dd357a0b39abf1ebbe8a0f64973c3b0c5bc527e374c12afe51266279fc1ca6 +SIZE (rust/2019-08-15/rustc-1.37.0-x86_64-unknown-freebsd.tar.gz) = 70318740 +SHA256 (rust/2019-08-15/rust-std-1.37.0-x86_64-unknown-freebsd.tar.gz) = 8783a667ea9c46f27027d494098c51563faa734c5ddb23c6b9b3eda804eb9742 +SIZE (rust/2019-08-15/rust-std-1.37.0-x86_64-unknown-freebsd.tar.gz) = 87956779 +SHA256 (rust/2019-08-15/cargo-0.38.0-x86_64-unknown-freebsd.tar.gz) = ec5051df58aeff6720f386067c05de21bbc0f6532d74d2646f7b7bc36d341629 +SIZE (rust/2019-08-15/cargo-0.38.0-x86_64-unknown-freebsd.tar.gz) = 6712004 +SHA256 (rust/2019-08-15/rustc-1.37.0-armv6-unknown-freebsd.tar.gz) = d0b6c3422892764ebff9b3224265c47f62241d82b5974d715c0aabf845bbf586 +SIZE (rust/2019-08-15/rustc-1.37.0-armv6-unknown-freebsd.tar.gz) = 59085607 +SHA256 (rust/2019-08-15/rust-std-1.37.0-armv6-unknown-freebsd.tar.gz) = ce2b3f002457d7086870a2743e121aedc4dfb800fd9a65e6190d50f1b2e061a7 +SIZE (rust/2019-08-15/rust-std-1.37.0-armv6-unknown-freebsd.tar.gz) = 70261468 +SHA256 (rust/2019-08-15/cargo-0.38.0-armv6-unknown-freebsd.tar.gz) = 643497ec41d40168c99f327ee31cbcc0b73ea9bbb6bab523bfef2b915d13d186 +SIZE (rust/2019-08-15/cargo-0.38.0-armv6-unknown-freebsd.tar.gz) = 5716966 SHA256 (rust/compiler-rt-8.0.1.src.tar.xz) = 11828fb4823387d820c6715b25f6b2405e60837d12a7469e7a8882911c721837 SIZE (rust/compiler-rt-8.0.1.src.tar.xz) = 1954204 -SHA256 (rust/2019-07-04/rustc-1.36.0-armv7-unknown-freebsd.tar.gz) = c652bfb82d0e640e24a91aef39e9eeeedc0bd0b5b828546f9ef47bbae6a279bd -SIZE (rust/2019-07-04/rustc-1.36.0-armv7-unknown-freebsd.tar.gz) = 70165782 -SHA256 (rust/2019-07-04/rust-std-1.36.0-armv7-unknown-freebsd.tar.gz) = 8750ff6013261b68f692413c7db97fabac6a83583b4c16c2175ebb6a81c1d0c6 -SIZE (rust/2019-07-04/rust-std-1.36.0-armv7-unknown-freebsd.tar.gz) = 78322763 -SHA256 (rust/2019-07-04/cargo-0.37.0-armv7-unknown-freebsd.tar.gz) = f092d15bbfe91423efffa2d20c77e5ca9655aac4c41bd1943cf632aff1a92bf1 -SIZE (rust/2019-07-04/cargo-0.37.0-armv7-unknown-freebsd.tar.gz) = 5463628 -SHA256 (rust/2019-07-04/rustc-1.36.0-i686-unknown-freebsd.tar.gz) = 4ac319c56b360a1c9418cc1862ed86366c79155dbcfdd0a9852b98e0bc4dcd0e -SIZE (rust/2019-07-04/rustc-1.36.0-i686-unknown-freebsd.tar.gz) = 80314139 -SHA256 (rust/2019-07-04/rust-std-1.36.0-i686-unknown-freebsd.tar.gz) = 3387dff03da9babc28861892f41b08ff58bc51bea2d0e84ac0a045e84999eebf -SIZE (rust/2019-07-04/rust-std-1.36.0-i686-unknown-freebsd.tar.gz) = 87744414 -SHA256 (rust/2019-07-04/cargo-0.37.0-i686-unknown-freebsd.tar.gz) = 3c4cef06939123951649c9ffcef7ba104cc3bc63c2b3243a7a7228749c58f37c -SIZE (rust/2019-07-04/cargo-0.37.0-i686-unknown-freebsd.tar.gz) = 6553782 -SHA256 (rust/2019-07-04/rustc-1.36.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 98b0f27977a5412852044bc7ef2e95dfb5eced140c73a0ed0faf5841cecbaf83 -SIZE (rust/2019-07-04/rustc-1.36.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 78638311 -SHA256 (rust/2019-07-04/rust-std-1.36.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 197bb8ce6944eddc7c18d20f7c2721e35abb3458678ef60d287941ca01e244ed -SIZE (rust/2019-07-04/rust-std-1.36.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 81520259 -SHA256 (rust/2019-07-04/cargo-0.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 17d9345621caa47015843b811019e16b32020c053fb72c3f3a6909e42d548f6c -SIZE (rust/2019-07-04/cargo-0.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 7388067 -SHA256 (rust/2019-07-04/rustc-1.36.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 7581410a224e3649fc75cbb302c46fa0d59d571f3c6b9556682ab1411872db83 -SIZE (rust/2019-07-04/rustc-1.36.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 72163495 -SHA256 (rust/2019-07-04/rust-std-1.36.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = edd4584a9583fb699dbf23797151d1d78bdf1e1d1389d715acbdefc5fcf5dc7c -SIZE (rust/2019-07-04/rust-std-1.36.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 79921640 -SHA256 (rust/2019-07-04/cargo-0.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 408fb3a5b2127ca369d5e5fe5768d475820916aa4e84150bdb939d0d155d5e32 -SIZE (rust/2019-07-04/cargo-0.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 5701853 +SHA256 (rust/2019-08-15/rustc-1.37.0-armv7-unknown-freebsd.tar.gz) = b957e13bdb899f42c1c4b3cd91d18f7d4f6ab08b2492f9acf85e447f53640121 +SIZE (rust/2019-08-15/rustc-1.37.0-armv7-unknown-freebsd.tar.gz) = 58107583 +SHA256 (rust/2019-08-15/rust-std-1.37.0-armv7-unknown-freebsd.tar.gz) = c380d455923065b5067a43ec796c043dfb4241392e068a187d6d93909f1cbafb +SIZE (rust/2019-08-15/rust-std-1.37.0-armv7-unknown-freebsd.tar.gz) = 69710688 +SHA256 (rust/2019-08-15/cargo-0.38.0-armv7-unknown-freebsd.tar.gz) = 80641006fcb23de4780ac8576b9f0b235be1cb95e3d632a0976bfdd6117ee502 +SIZE (rust/2019-08-15/cargo-0.38.0-armv7-unknown-freebsd.tar.gz) = 4742625 +SHA256 (rust/2019-08-15/rustc-1.37.0-i686-unknown-freebsd.tar.gz) = 0d3a5bc51f138bfe3f7ccd4b9ccaa5aeec0d881118b7264f5e59ae8e1ce9f78a +SIZE (rust/2019-08-15/rustc-1.37.0-i686-unknown-freebsd.tar.gz) = 70857405 +SHA256 (rust/2019-08-15/rust-std-1.37.0-i686-unknown-freebsd.tar.gz) = 21fbe36d9580f68fcd65d4248ffb05a40f787a38d87792545c7946b273e91beb +SIZE (rust/2019-08-15/rust-std-1.37.0-i686-unknown-freebsd.tar.gz) = 88558002 +SHA256 (rust/2019-08-15/cargo-0.38.0-i686-unknown-freebsd.tar.gz) = e54e8e072ae5fba11ce36935cb813793ad6871b1fe1b3dfdb02a0a18e920ddda +SIZE (rust/2019-08-15/cargo-0.38.0-i686-unknown-freebsd.tar.gz) = 6593950 +SHA256 (rust/2019-08-15/rustc-1.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 37983bf447f08cb57d6f7ebb56221de8e7ca1e85854cfdd277dd6e6da0099ee9 +SIZE (rust/2019-08-15/rustc-1.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 66814620 +SHA256 (rust/2019-08-15/rust-std-1.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 392b5361e5d6fac72a5ed4ed0ae9ca6f3debe3af60884534364b8e97c41357b2 +SIZE (rust/2019-08-15/rust-std-1.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 72765984 +SHA256 (rust/2019-08-15/cargo-0.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 36098b913bdf067f11d793829ab80088f6d148f36612027da399c7e90d1d0adb +SIZE (rust/2019-08-15/cargo-0.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 6717589 +SHA256 (rust/2019-08-15/rustc-1.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = f0e1eca1713b14e4dad034a96c2bdfe0493afe390b5dd33bf16139691412e91b +SIZE (rust/2019-08-15/rustc-1.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 59832229 +SHA256 (rust/2019-08-15/rust-std-1.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 2c6802162b807ad2e332a4872943f9a694aa925f553ef2e61fac9def9ad73d8e +SIZE (rust/2019-08-15/rust-std-1.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 71174548 +SHA256 (rust/2019-08-15/cargo-0.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = db19655601cecbf18b9bca3d2db2545301b9d31fa353c78582eb378af6dc3966 +SIZE (rust/2019-08-15/cargo-0.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 4983791 Index: lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_arm.rs =================================================================== --- lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_arm.rs +++ /dev/null @@ -1,30 +0,0 @@ ---- src/stdsimd/crates/std_detect/src/detect/os/freebsd/arm.rs.orig 2019-04-25 17:33:21 UTC -+++ src/stdsimd/crates/std_detect/src/detect/os/freebsd/arm.rs -@@ -0,0 +1,27 @@ -+//! Run-time feature detection for ARM on FreeBSD -+ -+use crate::detect::{Feature, cache}; -+use super::{auxvec}; -+ -+/// Performs run-time feature detection. -+#[inline] -+pub fn check_for(x: Feature) -> bool { -+ cache::test(x as u32, detect_features) -+} -+ -+/// Try to read the features from the auxiliary vector -+fn detect_features() -> cache::Initializer { -+ let mut value = cache::Initializer::default(); -+ let enable_feature = |value: &mut cache::Initializer, f, enable| { -+ if enable { -+ value.set(f as u32); -+ } -+ }; -+ -+ if let Ok(auxv) = auxvec::auxv() { -+ enable_feature(&mut value, Feature::neon, auxv.hwcap & 0x00001000 != 0); -+ enable_feature(&mut value, Feature::pmull, auxv.hwcap2 & 0x00000002 != 0); -+ return value; -+ } -+ value -+} Index: lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_auxvec.rs =================================================================== --- lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_auxvec.rs +++ /dev/null @@ -1,89 +0,0 @@ ---- src/stdsimd/crates/std_detect/src/detect/os/freebsd/auxvec.rs.orig 2019-04-25 17:33:21 UTC -+++ src/stdsimd/crates/std_detect/src/detect/os/freebsd/auxvec.rs -@@ -0,0 +1,86 @@ -+//! Parses ELF auxiliary vectors. -+#![cfg_attr(any(target_arch = "arm", target_arch = "powerpc64"), allow(dead_code))] -+ -+/// Key to access the CPU Hardware capabilities bitfield. -+pub(crate) const AT_HWCAP: usize = 25; -+/// Key to access the CPU Hardware capabilities 2 bitfield. -+pub(crate) const AT_HWCAP2: usize = 26; -+ -+/// Cache HWCAP bitfields of the ELF Auxiliary Vector. -+/// -+/// If an entry cannot be read all the bits in the bitfield are set to zero. -+/// This should be interpreted as all the features being disabled. -+#[derive(Debug, Copy, Clone)] -+pub(crate) struct AuxVec { -+ pub hwcap: usize, -+ pub hwcap2: usize, -+} -+ -+/// ELF Auxiliary Vector -+/// -+/// The auxiliary vector is a memory region in a running ELF program's stack -+/// composed of (key: usize, value: usize) pairs. -+/// -+/// The keys used in the aux vector are platform dependent. For FreeBSD, they are -+/// defined in [sys/elf_common.h][elf_common_h]. The hardware capabilities of a given -+/// CPU can be queried with the `AT_HWCAP` and `AT_HWCAP2` keys. -+/// -+/// Note that run-time feature detection is not invoked for features that can -+/// be detected at compile-time. -+/// -+/// [elf_common.h]: https://svnweb.freebsd.org/base/release/12.0.0/sys/sys/elf_common.h?revision=341707 -+pub(crate) fn auxv() -> Result { -+ if let Ok(hwcap) = archauxv(AT_HWCAP) { -+ if let Ok(hwcap2) = archauxv(AT_HWCAP2) { -+ if hwcap != 0 && hwcap2 != 0 { -+ return Ok(AuxVec { hwcap, hwcap2 }); -+ } -+ } -+ } -+ Err(()) -+} -+ -+/// Tries to read the `key` from the auxiliary vector. -+fn archauxv(key: usize) -> Result { -+ use crate::mem; -+ -+ #[derive (Copy, Clone)] -+ #[repr(C)] -+ pub struct Elf_Auxinfo { -+ pub a_type: usize, -+ pub a_un: unnamed, -+ } -+ #[derive (Copy, Clone)] -+ #[repr(C)] -+ pub union unnamed { -+ pub a_val: libc::c_long, -+ pub a_ptr: *mut libc::c_void, -+ pub a_fcn: Option ()>, -+ } -+ -+ let mut auxv: [Elf_Auxinfo; 27] = -+ [Elf_Auxinfo{a_type: 0, a_un: unnamed{a_val: 0,},}; 27]; -+ -+ let mut len: libc::c_uint = mem::size_of_val(&auxv) as libc::c_uint; -+ -+ unsafe { -+ let mut mib = [libc::CTL_KERN, libc::KERN_PROC, libc::KERN_PROC_AUXV, libc::getpid()]; -+ -+ let ret = libc::sysctl(mib.as_mut_ptr(), -+ mib.len() as u32, -+ &mut auxv as *mut _ as *mut _, -+ &mut len as *mut _ as *mut _, -+ 0 as *mut libc::c_void, -+ 0, -+ ); -+ -+ if ret != -1 { -+ for i in 0..auxv.len() { -+ if auxv[i].a_type == key { -+ return Ok(auxv[i].a_un.a_val as usize); -+ } -+ } -+ } -+ } -+ return Ok(0); -+} Index: lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_mod.rs =================================================================== --- lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_mod.rs +++ /dev/null @@ -1,20 +0,0 @@ ---- src/stdsimd/crates/std_detect/src/detect/os/freebsd/mod.rs.orig 2019-05-20 12:10:32 UTC -+++ src/stdsimd/crates/std_detect/src/detect/os/freebsd/mod.rs -@@ -1,9 +1,17 @@ - //! Run-time feature detection on FreeBSD - -+mod auxvec; -+ - cfg_if! { - if #[cfg(target_arch = "aarch64")] { - mod aarch64; - pub use self::aarch64::check_for; -+ } else if #[cfg(target_arch = "arm")] { -+ mod arm; -+ pub use self::arm::check_for; -+ } else if #[cfg(target_arch = "powerpc64")] { -+ mod powerpc; -+ pub use self::powerpc::check_for; - } else { - use crate::arch::detect::Feature; - /// Performs run-time feature detection. Index: lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_powerpc.rs =================================================================== --- lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_powerpc.rs +++ /dev/null @@ -1,30 +0,0 @@ ---- src/stdsimd/crates/std_detect/src/detect/os/freebsd/powerpc.rs.orig 2019-04-25 17:33:21 UTC -+++ src/stdsimd/crates/std_detect/src/detect/os/freebsd/powerpc.rs -@@ -0,0 +1,27 @@ -+//! Run-time feature detection for PowerPC on FreeBSD. -+ -+use crate::detect::{Feature, cache}; -+use super::{auxvec}; -+ -+/// Performs run-time feature detection. -+#[inline] -+pub fn check_for(x: Feature) -> bool { -+ cache::test(x as u32, detect_features) -+} -+ -+fn detect_features() -> cache::Initializer { -+ let mut value = cache::Initializer::default(); -+ let enable_feature = |value: &mut cache::Initializer, f, enable| { -+ if enable { -+ value.set(f as u32); -+ } -+ }; -+ -+ if let Ok(auxv) = auxvec::auxv() { -+ enable_feature(&mut value, Feature::altivec, auxv.hwcap & 0x10000000 != 0); -+ enable_feature(&mut value, Feature::vsx, auxv.hwcap & 0x00000080 != 0); -+ enable_feature(&mut value, Feature::power8, auxv.hwcap2 & 0x80000000 != 0); -+ return value; -+ } -+ value -+}