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

@@ -87,6 +87,7 @@ members = [
"validator_client", "validator_client",
"validator_client/slashing_protection", "validator_client/slashing_protection",
] ]
resolver = "2"
[patch] [patch]
[patch.crates-io] [patch.crates-io]

View File

@@ -9,11 +9,16 @@ lighthouse_metrics = { path = "../lighthouse_metrics" }
lazy_static = "1.4.0" lazy_static = "1.4.0"
libc = "0.2.79" libc = "0.2.79"
parking_lot = "0.12.0" parking_lot = "0.12.0"
jemallocator = { version = "0.5.0", optional = true, features = ["background_threads"] }
jemalloc-ctl = { version = "0.5.0", optional = true } 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] [features]
mallinfo2 = [] mallinfo2 = []
jemalloc = ["jemallocator", "jemallocator/stats", "jemalloc-ctl"] jemalloc = ["jemallocator", "jemalloc-ctl"]
jemalloc-stats = ["jemallocator/stats"]
jemalloc-profiling = ["jemallocator/profiling"] jemalloc-profiling = ["jemallocator/profiling"]

View File

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