From 20fd56ac0fe8c5f824cb7ce0375c6a63102a1ff1 Mon Sep 17 00:00:00 2001 From: rsdy Date: Fri, 8 Oct 2021 11:34:35 +0100 Subject: Add `no_neon` feature to disable NEON on aarch64 --- build.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'build.rs') diff --git a/build.rs b/build.rs index c5677f6..ac1d6a6 100644 --- a/build.rs +++ b/build.rs @@ -17,6 +17,10 @@ fn is_neon() -> bool { defined("CARGO_FEATURE_NEON") } +fn is_no_neon() -> bool { + defined("CARGO_FEATURE_NO_NEON") +} + fn is_ci() -> bool { defined("BLAKE3_CI") } @@ -226,6 +230,10 @@ fn main() -> Result<(), Box> { panic!("It doesn't make sense to enable both \"pure\" and \"neon\"."); } + if is_no_neon() && is_neon() { + panic!("It doesn't make sense to enable both \"no_neon\" and \"neon\"."); + } + if is_x86_64() || is_x86_32() { let support = c_compiler_support(); if is_x86_32() || should_prefer_intrinsics() || is_pure() || support == NoCompiler { @@ -245,7 +253,7 @@ fn main() -> Result<(), Box> { } } - if (is_arm() && is_neon()) || (is_aarch64() && !is_pure()) { + if (is_arm() && is_neon()) || (!is_no_neon() && !is_pure() && is_aarch64()) { println!("cargo:rustc-cfg=blake3_neon"); build_neon_c_intrinsics(); } -- cgit v1.2.3