Compatibility with macOS

This commit is contained in:
Michael Sproul
2022-11-08 13:46:17 +11:00
parent 69ecba7876
commit 41eac5d0c1
3 changed files with 17 additions and 6 deletions

View File

@@ -9,11 +9,16 @@ lighthouse_metrics = { path = "../lighthouse_metrics" }
lazy_static = "1.4.0"
libc = "0.2.79"
parking_lot = "0.12.0"
jemallocator = { version = "0.5.0", optional = true, features = ["background_threads"] }
jemalloc-ctl = { version = "0.5.0", optional = true }
# Jemalloc's background_threads feature requires Linux (pthreads).
[target.'cfg(target_os = "linux")'.dependencies]
jemallocator = { version = "0.5.0", optional = true, features = ["stats", "background_threads"] }
[target.'cfg(not(target_os = "linux"))'.dependencies]
jemallocator = { version = "0.5.0", optional = true, features = ["stats"] }
[features]
mallinfo2 = []
jemalloc = ["jemallocator", "jemallocator/stats", "jemalloc-ctl"]
jemalloc-stats = ["jemallocator/stats"]
jemalloc = ["jemallocator", "jemalloc-ctl"]
jemalloc-profiling = ["jemallocator/profiling"]

View File

@@ -26,7 +26,8 @@
#[cfg(all(
target_os = "linux",
not(any(target_env = "musl", feature = "jemalloc"))
not(target_env = "musl"),
not(feature = "jemalloc")
))]
mod glibc;
@@ -37,7 +38,8 @@ pub use interface::*;
#[cfg(all(
target_os = "linux",
not(any(target_env = "musl", feature = "jemalloc"))
not(target_env = "musl"),
not(feature = "jemalloc")
))]
mod interface {
pub use crate::glibc::configure_glibc_malloc as configure_memory_allocator;
@@ -54,7 +56,10 @@ mod interface {
pub use crate::jemalloc::scrape_jemalloc_metrics as scrape_allocator_metrics;
}
#[cfg(any(not(target_os = "linux"), target_env = "musl"))]
#[cfg(all(
any(not(target_os = "linux"), target_env = "musl"),
not(feature = "jemalloc")
))]
mod interface {
#[allow(dead_code, clippy::unnecessary_wraps)]
pub fn configure_memory_allocator() -> Result<(), String> {