-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: Remove negated --enable-fuzz checks from build system #24291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
fa132bf
to
fa738dc
Compare
Concept ACK. |
Concept ACK |
Concept ACK, however implementing the logic "don't require boost-test if fuzz enabled" directly feels somewhat contorted to me. Can't we, say, disable Edit: or, even better, get rid of that code entirely as in #24301 |
fa738dc
to
fa4bd83
Compare
Thanks, I split up the |
5d399f9 build: remove native B2 package (fanquake) 2037a3b build: header-only Boost (fanquake) 39e66e9 build: use header-only Boost unit test (fanquake) Pull request description: This PR converts our Boost usage to header only. We switch from using our last remaining Boost lib (unit test), to using it's header-only implementation (see https://www.boost.org/doc/libs/1_78_0/libs/test/doc/html/boost_test/adv_scenarios/single_header_customizations/multiple_translation_units.html). Also related to #24291. Guix build: ```bash ``` ACKs for top commit: hebasto: re-ACK 5d399f9 MarcoFalke: approach ACK 5d399f9 📞 Tree-SHA512: e60835ee9c11aa941a64679616da2002d6cd86e464895372fafdd42ad6499d7eb1dde6f0013c60adaeb97bd191198430cb158a7a7417b38080dd7106b28e3ba5
Is this resolved post-#24301 ? |
fa4bd83
to
ab4b7e8
Compare
ab4b7e8
to
fa2c897
Compare
configure.ac
Outdated
@@ -1471,7 +1472,7 @@ fi | |||
|
|||
dnl libevent check | |||
|
|||
if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench" != "nonononono"; then | |||
if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$enable_fuzz_binary$use_tests$use_bench" != "nonnoononono"; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i sometimes wonder if we can switch to actual logic instead of this hilarious ever growing nononononono concatenation
(outside scope of this PR obviously)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree. Maybe the build people can shed some light on this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we used true/false instead of yes/no, we could just do
if $build_bitcoin_cli || $build_bitcoind || $bitcoin_enable_qt || $enable_fuzz_binary || $use_tests || $use_bench; then
Or even if we just add a:
yes() { true; } no() { false; }
somewhere...
Code review ACK fa2c897 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK
configure.ac
Outdated
@@ -1471,7 +1472,7 @@ fi | |||
|
|||
dnl libevent check | |||
|
|||
if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench" != "nonononono"; then | |||
if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$enable_fuzz_binary$use_tests$use_bench" != "nonnoononono"; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to be a typo
if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$enable_fuzz_binary$use_tests$use_bench" != "nonnoononono"; then | |
if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$enable_fuzz_binary$use_tests$use_bench" != "nononononono"; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So the construction is not only absurd but also error-prone and hard to review, as proven here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any way to fix this? Switching to cmake, maybe? @fanquake
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If only boolean logic was invented in this timeline !
fa2c897
to
fa4feab
Compare
Thanks, fixed nonono typo. Should be trivial to re-ACK with |
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
fa4feab
to
fad3d75
Compare
fad3d75
to
fa231f8
Compare
Code review ACK fa231f8 |
fa231f8
to
fa7cbc6
Compare
Code review re-ACK fa7cbc6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I currently get autogen.sh
warnings on master, which I backtraced to this PR:
src/Makefile.bench.include:97: warning: %.raw.h was already defined in condition TRUE, which includes condition ENABLE_BENCH ...
src/Makefile.am:1059: 'src/Makefile.bench.include' included from here
src/Makefile.test.include:420: ... '%.raw.h' previously defined here
src/Makefile.am:1056: 'src/Makefile.test.include' included from here
[Edit] Oh, there is already an issue for this, #25501.
It is confusing to enable the unit test binary with
ENABLE_TESTS && !ENABLE_FUZZ
, but every other binary is enabled with a simple flag. For exampleENABLE_BENCH
, orENABLE_FUZZ_BINARY
.Fix that by turning
ENABLE_TESTS
back into meaning "enable unit test binary".