diff --git a/Cargo.toml b/Cargo.toml index ec13ea0..5d1d192 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,6 +30,7 @@ secure = ["libmimalloc-sys2/secure"] override = ["libmimalloc-sys2/override"] local_dynamic_tls = ["libmimalloc-sys2/local_dynamic_tls"] no_thp = ["libmimalloc-sys2/no_thp"] +no_opt_arch = ["libmimalloc-sys2/no_opt_arch"] extended = ["libmimalloc-sys2/extended"] skip_collect_on_exit = ["libmimalloc-sys2/skip_collect_on_exit"] diff --git a/libmimalloc-sys/Cargo.toml b/libmimalloc-sys/Cargo.toml index 379d609..fd1e507 100644 --- a/libmimalloc-sys/Cargo.toml +++ b/libmimalloc-sys/Cargo.toml @@ -35,6 +35,8 @@ arena = [] local_dynamic_tls = [] no_thp = [] skip_collect_on_exit = [] +# turn off `MI_OPT_ARCH`, default is `ON` +no_opt_arch = [] # Show `extended` on docs.rs since it's the full API surface. [package.metadata.docs.rs] diff --git a/libmimalloc-sys/build.rs b/libmimalloc-sys/build.rs index c4b85d8..a13ed71 100644 --- a/libmimalloc-sys/build.rs +++ b/libmimalloc-sys/build.rs @@ -38,6 +38,10 @@ fn main() { cmake_config.define("MI_TRACK_ETW", "ON"); } + if env::var_os("CARGO_FEATURE_NO_OPT_ARCH").is_some() { + cmake_config.define("MI_OPT_ARCH", "OFF"); + } + // it's complicated to link ucrt in debug mode on windows if profile == "debug" && target_env != "msvc" { cmake_config