From f63e301ee4051dfacda9d8603e7a47470c46d3b7 Mon Sep 17 00:00:00 2001 From: Bernhard Schuster Date: Tue, 10 Feb 2026 15:07:27 +0100 Subject: [PATCH 1/3] one more missing piece --- Cargo.lock | 1 + crates/proto/Cargo.toml | 9 +++++---- crates/proto/build.rs | 2 ++ crates/rocksdb-cxx-linkage-fix/src/lib.rs | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 85179d0f9..15164a5d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2836,6 +2836,7 @@ dependencies = [ "http", "miden-node-grpc-error-macro", "miden-node-proto-build", + "miden-node-rocksdb-cxx-linkage-fix", "miden-node-utils", "miden-protocol", "miden-standards", diff --git a/crates/proto/Cargo.toml b/crates/proto/Cargo.toml index 6d3589ca3..2e9767f88 100644 --- a/crates/proto/Cargo.toml +++ b/crates/proto/Cargo.toml @@ -33,7 +33,8 @@ assert_matches = { workspace = true } proptest = { version = "1.7" } [build-dependencies] -fs-err = { workspace = true } -miden-node-proto-build = { features = ["internal"], workspace = true } -miette = { version = "7.6" } -tonic-prost-build = { workspace = true } +fs-err = { workspace = true } +miden-node-proto-build = { features = ["internal"], workspace = true } +miden-node-rocksdb-cxx-linkage-fix = { workspace = true } +miette = { version = "7.6" } +tonic-prost-build = { workspace = true } diff --git a/crates/proto/build.rs b/crates/proto/build.rs index b0ac773a7..5a39c1d54 100644 --- a/crates/proto/build.rs +++ b/crates/proto/build.rs @@ -22,6 +22,8 @@ fn main() -> miette::Result<()> { println!("cargo::rerun-if-changed=../../proto/proto"); println!("cargo::rerun-if-env-changed=BUILD_PROTO"); + miden_node_rocksdb_cxx_linkage_fix::configure(); + // Skip this build script in BUILD_PROTO environment variable is not set to `1`. if env::var("BUILD_PROTO").unwrap_or("0".to_string()) == "0" { return Ok(()); diff --git a/crates/rocksdb-cxx-linkage-fix/src/lib.rs b/crates/rocksdb-cxx-linkage-fix/src/lib.rs index 9eaae82fd..a20f550bd 100644 --- a/crates/rocksdb-cxx-linkage-fix/src/lib.rs +++ b/crates/rocksdb-cxx-linkage-fix/src/lib.rs @@ -17,7 +17,8 @@ pub fn configure() { fn should_link_cpp_stdlib() -> bool { let rocksdb_compile = env::var("ROCKSDB_COMPILE").unwrap_or_default(); - let rocksdb_compile_disabled = matches!(rocksdb_compile.as_str(), "0" | "false" | "FALSE"); + let rocksdb_compile_disabled = + rocksdb_compile.is_empty() || matches!(rocksdb_compile.as_str(), "0" | "false" | "FALSE"); let rocksdb_static = env::var("ROCKSDB_STATIC").is_ok(); let rocksdb_lib_dir_set = env::var("ROCKSDB_LIB_DIR").is_ok(); From e08167276dcf4e6eda40ece529ec7caef5ff4605 Mon Sep 17 00:00:00 2001 From: Bernhard Schuster Date: Tue, 10 Feb 2026 15:19:06 +0100 Subject: [PATCH 2/3] unity --- crates/rocksdb-cxx-linkage-fix/src/lib.rs | 26 +++++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/crates/rocksdb-cxx-linkage-fix/src/lib.rs b/crates/rocksdb-cxx-linkage-fix/src/lib.rs index a20f550bd..6b7461c38 100644 --- a/crates/rocksdb-cxx-linkage-fix/src/lib.rs +++ b/crates/rocksdb-cxx-linkage-fix/src/lib.rs @@ -15,17 +15,29 @@ pub fn configure() { } } -fn should_link_cpp_stdlib() -> bool { - let rocksdb_compile = env::var("ROCKSDB_COMPILE").unwrap_or_default(); - let rocksdb_compile_disabled = - rocksdb_compile.is_empty() || matches!(rocksdb_compile.as_str(), "0" | "false" | "FALSE"); - let rocksdb_static = env::var("ROCKSDB_STATIC").is_ok(); - let rocksdb_lib_dir_set = env::var("ROCKSDB_LIB_DIR").is_ok(); +fn should_compile() -> bool { + // in sync with + if let Ok(v) = env::var(format!("ROCKSDB_COMPILE")) { + if v.to_lowercase() == "true" || v == "1" { + return true; + } + } + false +} - rocksdb_lib_dir_set || (rocksdb_static && rocksdb_compile_disabled) +fn should_link_cpp_stdlib() -> bool { + if should_compile() { + return false; + } + // the value doesn't matter + // + env::var("ROCKSDB_STATIC").is_ok() + // `ROCKSDB_LIB_DIR` is not really discriminative, it only adds extra lookup dirs for the linker } fn link_cpp_stdlib(target: &str) { + // aligned with + // if let Ok(stdlib) = env::var("CXXSTDLIB") { println!("cargo:rustc-link-lib=dylib={stdlib}"); } else if target.contains("apple") || target.contains("freebsd") || target.contains("openbsd") { From b36c0c38c84d1806b44955d0005cc7c714d44145 Mon Sep 17 00:00:00 2001 From: Bernhard Schuster Date: Tue, 10 Feb 2026 15:25:32 +0100 Subject: [PATCH 3/3] clippy --- crates/rocksdb-cxx-linkage-fix/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/rocksdb-cxx-linkage-fix/src/lib.rs b/crates/rocksdb-cxx-linkage-fix/src/lib.rs index 6b7461c38..35bc05d00 100644 --- a/crates/rocksdb-cxx-linkage-fix/src/lib.rs +++ b/crates/rocksdb-cxx-linkage-fix/src/lib.rs @@ -17,7 +17,7 @@ pub fn configure() { fn should_compile() -> bool { // in sync with - if let Ok(v) = env::var(format!("ROCKSDB_COMPILE")) { + if let Ok(v) = env::var("ROCKSDB_COMPILE") { if v.to_lowercase() == "true" || v == "1" { return true; }