diff --git a/libmimalloc-sys/build.rs b/libmimalloc-sys/build.rs index 7c62c6a..c4b85d8 100644 --- a/libmimalloc-sys/build.rs +++ b/libmimalloc-sys/build.rs @@ -29,10 +29,6 @@ fn main() { cmake_config.define("MI_SKIP_COLLECT_ON_EXIT", "ON"); } - if target_os == "windows" { - mimalloc_base_name = Cow::Owned(format!("{}-static", mimalloc_base_name)); - } - if env::var_os("CARGO_FEATURE_SECURE").is_some() { cmake_config.define("MI_SECURE", "ON"); mimalloc_base_name = Cow::Owned(format!("{}-secure", mimalloc_base_name)); @@ -51,7 +47,14 @@ fn main() { } if target_env == "musl" { - cmake_config.define("MI_LIBC_MUSL", "1"); + cmake_config + .define("MI_LIBC_MUSL", "ON") + .cflag("-Wno-error=date-time"); + if target_arch == "aarch64" { + cmake_config + .define("MI_OPT_ARCH", "OFF") + .define("MI_NO_OPT_ARCH", "ON"); + } } let dynamic_tls = env::var("CARGO_FEATURE_LOCAL_DYNAMIC_TLS").is_ok(); @@ -76,19 +79,14 @@ fn main() { cmake_config.define("MI_DEBUG_FULL", "OFF"); } - if target_arch == "aarch64" && target_env == "musl" { - cmake_config.define("MI_OPT_ARCH", "OFF"); - } - if target_env == "msvc" { cmake_config .define("MI_USE_CXX", "ON") - .define("MI_WIN_USE_FIXED_TLS", "ON") // always turn off debug full and show errors on msvc .define("MI_DEBUG_FULL", "OFF") .define("MI_SHOW_ERRORS", "OFF") .profile("release") - .static_crt(true); + .static_crt(false); } let dst = cmake_config.build(); diff --git a/libmimalloc-sys/c_src/mimalloc b/libmimalloc-sys/c_src/mimalloc index a3070dc..f81bf1b 160000 --- a/libmimalloc-sys/c_src/mimalloc +++ b/libmimalloc-sys/c_src/mimalloc @@ -1 +1 @@ -Subproject commit a3070dc57fa03a43cae9079a2a879a66cec8f715 +Subproject commit f81bf1b31af819a31195e08f9546dc80f8931587 diff --git a/libmimalloc-sys/src/extended.rs b/libmimalloc-sys/src/extended.rs index 0989986..f6fb032 100644 --- a/libmimalloc-sys/src/extended.rs +++ b/libmimalloc-sys/src/extended.rs @@ -545,8 +545,53 @@ pub const mi_option_max_warnings: mi_option_t = 20; /// Option (experimental) pub const mi_option_max_segment_reclaim: mi_option_t = 21; +/// Option (experimental) +pub const mi_option_destroy_on_exit: mi_option_t = 22; + +/// Option (experimental) +pub const mi_option_arena_reserve: mi_option_t = 23; + +/// Option (experimental) +pub const mi_option_arena_purge_mult: mi_option_t = 24; + +/// Option (experimental) +pub const mi_option_purge_extend_delay: mi_option_t = 25; + +/// Option (experimental) +pub const mi_option_abandoned_reclaim_on_free: mi_option_t = 26; + +/// Option (experimental) +pub const mi_option_disallow_arena_alloc: mi_option_t = 27; + +/// Option (experimental) +pub const mi_option_retry_on_oom: mi_option_t = 28; + +/// Option (experimental) +pub const mi_option_visit_abandoned: mi_option_t = 29; + +/// Option (experimental) +pub const mi_option_guarded_min: mi_option_t = 30; + +/// Option (experimental) +pub const mi_option_guarded_max: mi_option_t = 31; + +/// Option (experimental) +pub const mi_option_guarded_precise: mi_option_t = 32; + +/// Option (experimental) +pub const mi_option_guarded_sample_rate: mi_option_t = 33; + +/// Option (experimental) +pub const mi_option_guarded_sample_seed: mi_option_t = 34; + +/// Option (experimental) +pub const mi_option_target_segments_per_thread: mi_option_t = 35; + +/// Option (experimental) +pub const mi_option_generic_collect: mi_option_t = 36; + /// Last option. -pub const _mi_option_last: mi_option_t = 36; +pub const _mi_option_last: mi_option_t = 37; extern "C" { // Note: mi_option_{enable,disable} aren't exposed because they're redundant