From cc0c9b6f1208fcccafbc9ae743cc53629631fb5d Mon Sep 17 00:00:00 2001 From: Jack O'Connor Date: Thu, 15 Aug 2024 16:22:55 -0700 Subject: [PATCH] mark the AVX-512 xof_many implementation as Unix-only --- c/blake3_c_rust_bindings/src/lib.rs | 1 + c/blake3_c_rust_bindings/src/test.rs | 1 + src/ffi_avx512.rs | 3 +++ src/platform.rs | 1 + 4 files changed, 6 insertions(+) diff --git a/c/blake3_c_rust_bindings/src/lib.rs b/c/blake3_c_rust_bindings/src/lib.rs index ac7880a5..31b7731b 100644 --- a/c/blake3_c_rust_bindings/src/lib.rs +++ b/c/blake3_c_rust_bindings/src/lib.rs @@ -291,6 +291,7 @@ pub mod ffi { flags_end: u8, out: *mut u8, ); + #[cfg(unix)] pub fn blake3_xof_many_avx512( cv: *const u32, block: *const u8, diff --git a/c/blake3_c_rust_bindings/src/test.rs b/c/blake3_c_rust_bindings/src/test.rs index ec11219a..da883677 100644 --- a/c/blake3_c_rust_bindings/src/test.rs +++ b/c/blake3_c_rust_bindings/src/test.rs @@ -425,6 +425,7 @@ fn test_xof_many_portable() { } #[test] +#[cfg(unix)] #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] fn test_xof_many_avx512() { if !crate::avx512_detected() { diff --git a/src/ffi_avx512.rs b/src/ffi_avx512.rs index d34e53c6..67947746 100644 --- a/src/ffi_avx512.rs +++ b/src/ffi_avx512.rs @@ -61,6 +61,7 @@ pub unsafe fn hash_many( } // Unsafe because this may only be called on platforms supporting AVX-512. +#[cfg(unix)] pub unsafe fn xof_many( cv: &CVWords, block: &[u8; BLOCK_LEN], @@ -109,6 +110,7 @@ pub mod ffi { flags_end: u8, out: *mut u8, ); + #[cfg(unix)] pub fn blake3_xof_many_avx512( cv: *const u32, block: *const u8, @@ -141,6 +143,7 @@ mod test { crate::test::test_hash_many_fn(hash_many, hash_many); } + #[cfg(unix)] #[test] fn test_xof_many() { if !crate::platform::avx512_detected() { diff --git a/src/platform.rs b/src/platform.rs index 1858addc..6e4ae259 100644 --- a/src/platform.rs +++ b/src/platform.rs @@ -289,6 +289,7 @@ impl Platform { match self { // Safe because detect() checked for platform support. #[cfg(blake3_avx512_ffi)] + #[cfg(unix)] #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] Platform::AVX512 => unsafe { crate::avx512::xof_many(cv, block, block_len, counter, flags, out)