aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2024-09-16Merge bitcoin/bitcoin#30661: fuzz: Test headers pre-sync through p2pglozow
a97f43d63a6e835bae20b0bc5d536df98f55d8a0 fuzz: Add harness for p2p headers sync (marcofleon) a0eaa4749fe0f755e113eee70dee1989bdc07ad5 Add FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION in PoW check (marcofleon) a3f6f5acd89f2f5bb136ec247f259d212e8944d0 build: Automatically define FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION for fuzz builds (marcofleon) 0c02d4b2bdbc7a3fc3031a63b3b16bafa669d51c net_processing: Make MAX_HEADERS_RESULTS a PeerManager option (marcofleon) Pull request description: This PR reopens https://github.com/bitcoin/bitcoin/pull/28043. It's a regression fuzz test for https://github.com/bitcoin/bitcoin/pull/26355 and [a couple bugs](https://github.com/bitcoin/bitcoin/pull/25717/commits/ed6cddd98e32263fc116a4380af6d66da20da990) that were addressed in https://github.com/bitcoin/bitcoin/pull/25717. This should help us move forward with the [removal of mainnet checkpoints](https://github.com/bitcoin/bitcoin/pull/25725). It seems like the main concern in https://github.com/bitcoin/bitcoin/pull/28043 was the global mock function for proof of work. This PR aims to be an improvement by replacing the previous approach with a fuzz build configured using `FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION`. This ensures that the simplified test code will never be in a release binary. If we agree this is the way to go, there are some other places (for future targets) where this method could be used. In this target, PoW isn't being tested, so the goal is to bypass the check and let the fuzzer do its thing. In the other harnesses where PoW is actually being fuzzed, `CheckProofOfWork` is now `CheckProofOfWorkImpl`. So, the only change to that function is in the name. More about `FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION` can be found at https://llvm.org/docs/LibFuzzer.html#fuzzer-friendly-build-mode and https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/fuzzing_in_depth.md#d-modifying-the-target. ACKs for top commit: naumenkogs: ACK a97f43d63a6e835bae20b0bc5d536df98f55d8a0 dergoegge: reACK a97f43d63a6e835bae20b0bc5d536df98f55d8a0 instagibbs: tested ACK a97f43d63a6e835bae20b0bc5d536df98f55d8a0 brunoerg: ACK a97f43d63a6e835bae20b0bc5d536df98f55d8a0 Tree-SHA512: 60b0bc6aadd8ca4c39db9cbba2da2debaaf68afcb6a8dd75c1ce48ca9e3996948fda8020930b6771a424e0f7c41b0b1068db4aa7dbe517f8fc152f1f712058ad
2024-09-13build: use standard branch-protection for aarch64-linuxfanquake
2024-09-12Merge bitcoin/bitcoin#30803: build: Minor build system fixes and amendmentsmerge-script
1cc93fe7b40f10a7d1d1189058af98a2bce31381 build: Delete dead code that implements `IF_CHECK_FAILED` option (Hennadii Stepanov) 341ad238091d4df520c70f1757b017e6f6620f24 build: Delete MSVC special case for `BUILD_FOR_FUZZING` option (Hennadii Stepanov) fdad128b528bc8622bc6d8343026c28b18260f64 build: Stop enabling CMake's CMP0141 policy (Hennadii Stepanov) b2a6f545b4f6e3442ae51f66a6f3c1de92d00a1b doc: Drop `ctest` command from Windows cross-compiling instructions (Hennadii Stepanov) 73b618582dcf06dd01be062fe0f81060cfcb48d8 build: Print `CMAKE_CXX_COMPILER_ARG1` in summary (Hennadii Stepanov) f03c9420958de31fdfecec5fa3e23134aac61803 build, test: Add missed log options (Hennadii Stepanov) 6f2cb0eafdef81fb9464a4679c3a5905d19e5103 doc: Amend comment about ZeroMQ config files (Hennadii Stepanov) Pull request description: This PR addresses the following comments: - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1742342524 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1728692369 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1736110362 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1742931121 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1747723657 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1742328675 - https://github.com/bitcoin/bitcoin/pull/30454#discussion_r1723106474 ACKs for top commit: sipsorcery: tACK 1cc93fe7b40f10a7d1d1189058af98a2bce31381 (win11 msvc). maflcko: re-ACK 1cc93fe7b40f10a7d1d1189058af98a2bce31381 Tree-SHA512: a390797bb4d3b7eb9163653b6c9c324e7a01090f6cdda74df7349a24a5c4a2084e5912878747f56561315afc70cae9adb1c363f47ceb0af96004ea591d25171b
2024-09-10build: Fix `ENABLE_WALLET` optionHennadii Stepanov
The removed commands were left over from the transition from autodetection to explicit options. These commands prevented the `-DENABLE_WALLET=OFF` option from being work properly when building with depends.
2024-09-09Merge bitcoin/bitcoin#30824: cmake: decouple `FORTIFY_SOURCE` check from ↵merge-script
`Debug` build type 30803a35d54acda19ded88474c205f8954fea5e1 cmake: decouple FORTIFY_SOURCE check from Debug build type (fanquake) Pull request description: `FORTIFY_SOURCE` should be used if `ENABLE_HARDENING=ON` and optimisations are being used. This should not be coupled to any particular build type, because even if the build type is `Debug`, optimisations might still be in use. Fixes: #30800. Also somewhat of a followup to https://github.com/bitcoin/bitcoin/pull/30778#discussion_r1742257436. ACKs for top commit: ryanofsky: Code review ACK 30803a35d54acda19ded88474c205f8954fea5e1 TheCharlatan: ACK 30803a35d54acda19ded88474c205f8954fea5e1 Tree-SHA512: 298f8805a5bb2f1ff54e51ea31324d712c2070cc3eba26561c31001ace4bfa37ae6d18531cbd45e2faf610a0a1b83b420fcde6e329e17f02b021d26563583913
2024-09-08build: Delete MSVC special case for `BUILD_FOR_FUZZING` optionHennadii Stepanov
2024-09-06build: Stop enabling CMake's CMP0141 policyHennadii Stepanov
The `CMAKE_MSVC_DEBUG_INFORMATION_FORMAT` variable has not been used since the merge of https://github.com/hebasto/bitcoin/pull/215 in the CMake staging branch.
2024-09-06doc: Amend comment about ZeroMQ config filesHennadii Stepanov
2024-09-06cmake: add USE_SOURCE_PERMISSIONS to all configure_file usagefanquake
`USE_SOURCE_PERMISSIONS` is the default, so this should not change behaviour. However, being explicit makes it clear what we are doing. Related to #30815. See https://cmake.org/cmake/help/latest/command/configure_file.html#options.
2024-09-05cmake: decouple FORTIFY_SOURCE check from Debug build typefanquake
`FORTIFY_SOURCE` should be used if `ENABLE_HARDENING=ON` and optimisations are being used. This should not be coupled to any particular build type, because even if the build type is `Debug`, optimisations might still be in use. Fixes: #30800.
2024-09-02build: Automatically define FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION for ↵marcofleon
fuzz builds
2024-08-29build: Drop no longer needed workaroundHennadii Stepanov
2024-08-28build: Add Centos Stream 9 EOL URLMarcoFalke
To match the format of the previous section about the Ubuntu 22.04 EOL.
2024-08-28build: fix version number post CMakefanquake
CMake was merged after branching-off for 28.x.
2024-08-16cmake: Add `Coverage` and `CoverageFuzz` scriptsHennadii Stepanov
2024-08-16cmake: Add `docs` build targetHennadii Stepanov
2024-08-16cmake: Add compiler diagnostic flagsHennadii Stepanov
2024-08-16cmake: Add `Maintenance` moduleHennadii Stepanov
2024-08-16cmake: Add `APPEND_{CPP,C,CXX,LD}FLAGS` cache variablesHennadii Stepanov
The content of those variables is appended to the each target after the flags added by the build system.
2024-08-16cmake: Implement `install` build targetHennadii Stepanov
2024-08-16cmake: Add cross-compiling supportHennadii Stepanov
To configure CMake for cross-compiling, use `--toolchain depends/${HOST}/toolchain.cmake` command-line option.
2024-08-16cmake: Add `MULTIPROCESS` optionHennadii Stepanov
2024-08-16cmake: Build `bitcoin-chainstate` executableHennadii Stepanov
2024-08-16cmake: Build `bitcoinkernel` libraryHennadii Stepanov
Co-authored-by: TheCharlatan <seb.kung@gmail.com>
2024-08-16cmake: Build `test_bitcoin-qt` executableHennadii Stepanov
2024-08-16cmake: Add `WITH_DBUS` optionHennadii Stepanov
2024-08-16cmake: Add `libqrencode` optional package supportHennadii Stepanov
2024-08-16cmake: Build `bitcoin-qt` executableHennadii Stepanov
2024-08-16cmake: Add `WERROR` optionHennadii Stepanov
2024-08-16cmake: Add `REDUCE_EXPORTS` optionHennadii Stepanov
2024-08-16cmake: Add `HARDENING` optionHennadii Stepanov
2024-08-16cmake: Add Python-based testsHennadii Stepanov
2024-08-16cmake: Add fuzzing optionsHennadii Stepanov
2024-08-16cmake: Add `SANITIZERS` optionHennadii Stepanov
2024-08-16cmake: Build `bench_bitcoin` executableHennadii Stepanov
2024-08-16cmake: Add external signer supportHennadii Stepanov
2024-08-16cmake: Add `systemtap-sdt` optional package supportHennadii Stepanov
2024-08-16cmake: Add `libzmq` optional package supportHennadii Stepanov
2024-08-16cmake: Add `libminiupnpc` optional package supportHennadii Stepanov
2024-08-16cmake: Add `libnatpmp` optional package supportHennadii Stepanov
2024-08-16cmake: Build `bitcoin-util` executableHennadii Stepanov
2024-08-16cmake: Build `bitcoin-tx` executableHennadii Stepanov
2024-08-16cmake: Add wallet functionalityHennadii Stepanov
2024-08-16cmake: Create test suite for `ctest`Hennadii Stepanov
2024-08-16cmake: Build `test_bitcoin` executableHennadii Stepanov
2024-08-16cmake: Build `bitcoin-cli` executableHennadii Stepanov
2024-08-16cmake: Build `bitcoind` executableHennadii Stepanov
2024-08-16cmake: Build `minisketch` static libraryHennadii Stepanov
2024-08-16cmake: Build `leveldb` static libraryHennadii Stepanov
Co-authored-by: Cory Fields <cory-nospam-@coryfields.com>
2024-08-16cmake: Build `crc32c` static libraryHennadii Stepanov