From 45a2a34c428a9c7f37bc79979f25c8041d00d992 Mon Sep 17 00:00:00 2001 From: Dennis Felsing Date: Wed, 22 Oct 2025 09:31:09 +0000 Subject: [PATCH] build: don't disable asserts see https://github.com/MaterializeInc/materialize/pull/32629 needed to make sure Cargo Release builds don't run into https://github.com/MaterializeInc/database-issues/issues/9313 --- rdkafka-sys/build.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/rdkafka-sys/build.rs b/rdkafka-sys/build.rs index c065fe65b..4a14d8121 100644 --- a/rdkafka-sys/build.rs +++ b/rdkafka-sys/build.rs @@ -276,6 +276,17 @@ fn build_librdkafka() { env::set_var("CMAKE_LIBRARY_PATH", cmake_library_paths.join(";")); } + // When building with `CMAKE_BUILD_TYPE=Release/MinSizeRel/RelWithDebInfo`, cmake automatically + // sets `-DNDEBUG` flags. This breaks librdkafka, which uses asserts for runtime error checking + // (confluentinc/librdkafka#5099). We unset `NDEBUG` by manually overwriting the cmake's + // `C_FLAGS` variables. + config.define("CMAKE_C_FLAGS_RELEASE", "-O3 -UNDEBUG"); + config.define("CMAKE_CXX_FLAGS_RELEASE", "-O3 -UNDEBUG"); + config.define("CMAKE_C_FLAGS_MINSIZEREL", "-O3 -UNDEBUG"); + config.define("CMAKE_CXX_FLAGS_MINSIZEREL", "-O3 -UNDEBUG"); + config.define("CMAKE_C_FLAGS_RELWITHDEBINFO", "-O3 -UNDEBUG"); + config.define("CMAKE_CXX_FLAGS_RELWITHDEBINFO", "-O3 -UNDEBUG"); + println!("Configuring and compiling librdkafka"); let dst = config.build();