From dfbb5f5ade808967256e5a217d4abef5eb86ef7e Mon Sep 17 00:00:00 2001 From: Gatefixer <313497061+lancedb-gatefixer[bot]@users.noreply.github.com> Date: Thu, 6 Aug 2026 07:25:21 +0000 Subject: [PATCH] fix(node): validate underscore rustc options --- nodejs/build_support/x86_64_v2.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/nodejs/build_support/x86_64_v2.rs b/nodejs/build_support/x86_64_v2.rs index 932b94042..a0ef3eb52 100644 --- a/nodejs/build_support/x86_64_v2.rs +++ b/nodejs/build_support/x86_64_v2.rs @@ -27,7 +27,8 @@ pub(crate) fn validate_encoded_rustflags(encoded: &str) -> Result<(), String> { continue; }; - match name { + let name = name.replace('_', "-"); + match name.as_str() { "target-cpu" => target_cpu = Some(value), "target-feature" => { for toggle in value.split(',').filter(|toggle| !toggle.is_empty()) { @@ -198,6 +199,16 @@ mod tests { ); } + #[test] + fn rejects_underscore_spelling_above_baseline_feature() { + let flags = encoded(&["-Ctarget_cpu=x86-64-v2", "-Ctarget_feature=+apxf"]); + + assert_eq!( + validate_encoded_rustflags(&flags), + Err("features above v2: apxf".to_owned()) + ); + } + #[test] fn rejects_unexpected_above_baseline_feature() { let flags = encoded(&[ @@ -241,4 +252,14 @@ mod tests { Err("LLVM arguments can override the CPU baseline".to_owned()) ); } + + #[test] + fn rejects_underscore_spelling_llvm_feature_overrides() { + let flags = encoded(&["-Ctarget_cpu=x86-64-v2", "-Cllvm_args=-mattr=+apxf"]); + + assert_eq!( + validate_encoded_rustflags(&flags), + Err("LLVM arguments can override the CPU baseline".to_owned()) + ); + } }