diff --git a/.cargo/config.toml b/.cargo/config.toml index 2174311..1f1025e 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -10,7 +10,10 @@ rustflags = ["-C", "link-arg=/STACK:8388608"] [target.'cfg(target_arch = "x86_64")'] rustflags = ["-C", "target-cpu=x86-64-v3"] -[target.'cfg(target_arch = "aarch64")'] +[target.'cfg(all(target_arch = "aarch64", target_os = "macos"))'] +rustflags = ["-C", "target-cpu=apple-m1"] + +[target.'cfg(all(target_arch = "aarch64", not(target_os = "macos")))'] rustflags = ["-C", "target-cpu=cortex-a76"] [env] diff --git a/build.rs b/build.rs index ea98211..1b108c0 100644 --- a/build.rs +++ b/build.rs @@ -73,7 +73,9 @@ fn main() { let arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap(); let opt_flag = if arch == "x86_64" { "-march=x86-64-v3" - } else if arch == "aarch64" { + } else if arch == "aarch64" && os == "macos" { + "-march=armv8.4-a" + } else if arch == "aarch64" && os != "macos" { "-march=armv8.2-a" } else { panic!("unknown arch")