From 24c3bbf8f8c9839400414adadce7d9affcf9990f Mon Sep 17 00:00:00 2001 From: thanhnguyen-aws Date: Fri, 11 Apr 2025 09:43:22 -0700 Subject: [PATCH 1/2] add target-feature neon --- kani-driver/src/call_cargo.rs | 1 + kani-driver/src/call_single_file.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/kani-driver/src/call_cargo.rs b/kani-driver/src/call_cargo.rs index 5f9f18d03563..32c96e61bf4e 100644 --- a/kani-driver/src/call_cargo.rs +++ b/kani-driver/src/call_cargo.rs @@ -466,6 +466,7 @@ pub fn cargo_config_args() -> Vec { // Propagate `--cfg=kani_host` to build scripts. "-Zhost-config", "-Ztarget-applies-to-host", + "-Ctarget-feature=+neon", "--config=host.rustflags=[\"--cfg=kani_host\"]", ] .map(OsString::from) diff --git a/kani-driver/src/call_single_file.rs b/kani-driver/src/call_single_file.rs index 4c049ca3196b..1433d82e43dc 100644 --- a/kani-driver/src/call_single_file.rs +++ b/kani-driver/src/call_single_file.rs @@ -178,6 +178,7 @@ impl KaniSession { "--check-cfg=cfg(kani)", // Do not invoke the linker since the compiler will not generate real object files "-Clinker=echo", + "-Ctarget-feature=+neon", ] .map(OsString::from), ); @@ -226,6 +227,8 @@ pub fn base_rustc_flags(lib_config: LibConfig) -> Vec { "crate-attr=feature(register_tool)", "-Z", "crate-attr=register_tool(kanitool)", + "-C", + "target-feature=+neon", ] .map(OsString::from) .to_vec(); From 5d1830a974eaaf2c717941906ee55e1b11d6dc9d Mon Sep 17 00:00:00 2001 From: thanhnguyen-aws Date: Fri, 11 Apr 2025 13:06:40 -0700 Subject: [PATCH 2/2] add flags --- tools/build-kani/src/sysroot.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/build-kani/src/sysroot.rs b/tools/build-kani/src/sysroot.rs index 139dce794f13..261ebe0c7379 100644 --- a/tools/build-kani/src/sysroot.rs +++ b/tools/build-kani/src/sysroot.rs @@ -85,7 +85,11 @@ pub fn build_lib(bin_folder: &Path) -> Result<()> { fn build_verification_lib(compiler_path: &Path) -> Result<()> { let extra_args = ["-Z", "build-std=panic_abort,std,test", "--config", "profile.dev.panic=\"abort\""]; - let compiler_args = ["--kani-compiler", "-Cllvm-args=--ignore-global-asm --build-std"]; + let compiler_args = [ + "--kani-compiler", + "-Cllvm-args=--ignore-global-asm --build-std", + "-Ctarget-feature=+neon", + ]; let packages = ["std", "kani", "kani_macros"]; let artifacts = build_kani_lib(compiler_path, &packages, &extra_args, &compiler_args)?; copy_artifacts(&artifacts, &kani_sysroot_lib(), true) @@ -97,7 +101,8 @@ fn build_playback_lib(compiler_path: &Path) -> Result<()> { let extra_args = ["--features=std/concrete_playback,kani/concrete_playback", "-Z", "build-std=std,test"]; let packages = ["std", "kani", "kani_macros"]; - let artifacts = build_kani_lib(compiler_path, &packages, &extra_args, &[])?; + let artifacts = + build_kani_lib(compiler_path, &packages, &extra_args, &["-Ctarget-feature=+neon"])?; copy_artifacts(&artifacts, &kani_playback_lib(), true) } @@ -278,6 +283,7 @@ pub fn build_bin>(extra_args: &[T]) -> Result { .arg("build") .args(extra_args) .args(args) + .env("CARGO_ENCODED_RUSTFLAGS", "-Ctarget-feature=+neon") .run() .or(Err(format_err!("Failed to build binaries.")))?; Ok(out_dir)