aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormerge-script <fanquake@gmail.com>2024-09-03 12:15:28 +0100
committermerge-script <fanquake@gmail.com>2024-09-03 12:15:28 +0100
commit9cb9651d92ddb5d92724f6a52440601c7a0bbcf8 (patch)
tree1736e4bf7dd0e7c14fe2b22853d0ee926825a347
parent4c526f575cde43cc49c0236f4d2b15a5fbb6d7ab (diff)
parent787dfaf084a3952319778da9cbcda9d7d619e4ee (diff)
Merge bitcoin/bitcoin#30778: build: Fix linking for `fuzz` target when building with MSan
787dfaf084a3952319778da9cbcda9d7d619e4ee ci: Do not override `-g -O1` set in `MSAN_FLAGS` (Hennadii Stepanov) 26c460aa8b5decfd08d931b9b3f80be5c13c7528 build: Fix linking for `fuzz` target when building with MSan (Hennadii Stepanov) Pull request description: The first commit fixes https://github.com/bitcoin/bitcoin/issues/30760. The second commit: 1. Preserves `-g -O1` set in `MSAN_FLAGS`. Since configuration-specific flags override general flags, these are set to empty strings. A similar approach is used in the OSS-Fuzz repository. 2. Sets the "Debug" build configuration when depends are built with `DEBUG=1`, ensuring that `linux_debug_CPPFLAGS` from depends are passed to the main build system. ACKs for top commit: maflcko: review-only ACK 787dfaf084a3952319778da9cbcda9d7d619e4ee fanquake: ACK 787dfaf084a3952319778da9cbcda9d7d619e4ee - as a follow up it would be good to: Tree-SHA512: c324390d1dbda30f82025d8482ddb0cfa0395f9ba225a2ddce05a123c65e0622a6a1d5f0fa03f09e21d62792431cf3da5c49e41a3ac7f7a958d0392a0430f29c
-rwxr-xr-xci/test/00_setup_env_native_fuzz_with_msan.sh4
-rwxr-xr-xci/test/00_setup_env_native_msan.sh9
-rw-r--r--src/test/fuzz/CMakeLists.txt1
3 files changed, 13 insertions, 1 deletions
diff --git a/ci/test/00_setup_env_native_fuzz_with_msan.sh b/ci/test/00_setup_env_native_fuzz_with_msan.sh
index 85f02c01c5..7cea4d73af 100755
--- a/ci/test/00_setup_env_native_fuzz_with_msan.sh
+++ b/ci/test/00_setup_env_native_fuzz_with_msan.sh
@@ -17,8 +17,12 @@ export PACKAGES="ninja-build"
# BDB generates false-positives and will be removed in future
export DEP_OPTS="DEBUG=1 NO_BDB=1 NO_QT=1 CC=clang CXX=clang++ CFLAGS='${MSAN_FLAGS}' CXXFLAGS='${MSAN_AND_LIBCXX_FLAGS}'"
export GOAL="install"
+# Setting CMAKE_{C,CXX}_FLAGS_DEBUG flags to an empty string ensures that the flags set in MSAN_FLAGS remain unaltered.
# _FORTIFY_SOURCE is not compatible with MSAN.
export BITCOIN_CONFIG="\
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DCMAKE_C_FLAGS_DEBUG='' \
+ -DCMAKE_CXX_FLAGS_DEBUG='' \
-DBUILD_FOR_FUZZING=ON \
-DSANITIZERS=fuzzer,memory \
-DAPPEND_CPPFLAGS='-DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE -U_FORTIFY_SOURCE' \
diff --git a/ci/test/00_setup_env_native_msan.sh b/ci/test/00_setup_env_native_msan.sh
index 85a1d3bd48..2c85ba31d1 100755
--- a/ci/test/00_setup_env_native_msan.sh
+++ b/ci/test/00_setup_env_native_msan.sh
@@ -17,8 +17,15 @@ export PACKAGES="ninja-build"
# BDB generates false-positives and will be removed in future
export DEP_OPTS="DEBUG=1 NO_BDB=1 NO_QT=1 CC=clang CXX=clang++ CFLAGS='${MSAN_FLAGS}' CXXFLAGS='${MSAN_AND_LIBCXX_FLAGS}'"
export GOAL="install"
+# Setting CMAKE_{C,CXX}_FLAGS_DEBUG flags to an empty string ensures that the flags set in MSAN_FLAGS remain unaltered.
# _FORTIFY_SOURCE is not compatible with MSAN.
-export BITCOIN_CONFIG="-DSANITIZERS=memory -DAPPEND_CPPFLAGS='-U_FORTIFY_SOURCE'"
+export BITCOIN_CONFIG="\
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DCMAKE_C_FLAGS_DEBUG='' \
+ -DCMAKE_CXX_FLAGS_DEBUG='' \
+ -DSANITIZERS=memory \
+ -DAPPEND_CPPFLAGS='-U_FORTIFY_SOURCE' \
+"
export USE_MEMORY_SANITIZER="true"
export RUN_FUNCTIONAL_TESTS="false"
export CCACHE_MAXSIZE=250M
diff --git a/src/test/fuzz/CMakeLists.txt b/src/test/fuzz/CMakeLists.txt
index 0bff9bf784..165add2e5a 100644
--- a/src/test/fuzz/CMakeLists.txt
+++ b/src/test/fuzz/CMakeLists.txt
@@ -132,6 +132,7 @@ target_link_libraries(fuzz
test_fuzz
bitcoin_cli
bitcoin_common
+ bitcoin_util
minisketch
leveldb
univalue