-
Notifications
You must be signed in to change notification settings - Fork 37.7k
ci: Build with --enable-werror by default, and document exceptions #20182
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
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.
Please fill out the PR description. What's the motivation for this change.
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. |
Concept ACK: deduplication is good |
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.
Approach ACK
The build system changes should go separate from the test/ci changes. Are they required or orthogonal? |
[@hebasto, correct me if I am wrong] @MarcoFalke, if they are going to go as separate PRs, then I think the CI change must go first and after that the |
CI changes require build system changes. |
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.
ACK 81ade9b
configure.ac
Outdated
dnl This is a temporary workaround. See https://github.com/bitcoin/bitcoin/pull/17919#issuecomment-674404780 | ||
AX_CHECK_COMPILE_FLAG([-Wunused-command-line-argument],[NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-unused-command-line-argument"],,[[$CXXFLAG_WERROR]]) |
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.
When can this workaround be removed? It is not clear from the linked comment.
I think whenever -Wno-foo
is added (silencing a class of warnings in Bitcoin Core code) that should link a PR that fixes those warnings or at least some concrete plan to ensure that the added -Wno-foo
will not be forgotten and remain forever in configure.ac
.
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.
Right, but we have no a PR with a fix now ((
ACK 3a409f6 |
b9e778f
to
bd09b7b
Compare
bd09b7b
to
2ca5156
Compare
@fanquake @practicalswift @vasild @MarcoFalke Mind (re)reviewing this PR (at the early stage of 22.0 cycle)? |
cr ACK 2ca5156: patch looks correct! |
Build system changes. i.e. the first commit, has been split out into a separated pr #20544. |
To resolve the dependency tangle with #20544 I think that:
|
Something similar was in my mind, so done. |
@MarcoFalke the assigned label could be switched from "Build system" to "Tests" now, right? |
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.
Not sure if this makes sense by itself in the current form. I failed to reproduce the compile failures locally.
Updated cbb234c -> 0e2d9ef (pr20182.10 -> pr20182.11):
|
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.
ACK 0e2d9ef
I am fine with NO_WERROR=1
in some of the .sh
files as long as those files did not contain --enable-werror
in their BITCOIN_CONFIG
before this PR. I.e. they did not use werror before this PR and will not use it after this PR either.
Surely, the less NO_WERROR=1
the better :)
@@ -14,3 +14,4 @@ export RUN_FUNCTIONAL_TESTS=false | |||
export RUN_SECURITY_TESTS="true" | |||
export GOAL="deploy" | |||
export BITCOIN_CONFIG="--enable-reduce-exports --disable-gui-tests --without-boost-process" | |||
export NO_WERROR=1 |
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 haven't tried this one yet. What is the error 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.
https://cirrus-ci.com/task/6268532532969472
script/interpreter.cpp: In function ‘bool EvalChecksig(const valtype&, const valtype&, prevector<28, unsigned char>::const_iterator, prevector<28, unsigned char>::const_iterator, ScriptExecutionData&, unsigned int, const BaseSignatureChecker&, SigVersion, ScriptError*, bool&)’:
script/interpreter.cpp:429:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
cc1plus: some warnings being treated as errors
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.
Could mention with a comment?
ACK 0e2d9ef 👈 Show signature and timestampSignature:
Timestamp of file with hash |
Updated 0e2d9ef -> 2f6fe4e (pr20182.11 -> pr20182.12, diff):
|
cr ACK 2f6fe4e: patch looks correct |
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.
ACK 2f6fe4e
re-ACK 2f6fe4e 🏏 Show signature and timestampSignature:
Timestamp of file with hash |
Github-Pull: bitcoin#20182 Rebased-From: 2f6fe4e
55e941f test: Fix intermittent feature_taproot issue (MarcoFalke) 681f728 ci: Build with --enable-werror by default, and document exceptions (Hennadii Stepanov) 89426c4 ci: Fix macOS brew install command (Hennadii Stepanov) Pull request description: This backports a few changes to fix CI failures we are seeing with the 0.21 branch. Backports #21663, this might be the easiest way to fix the macOS CI failures we're seeing. i.e in #22569. The underlying issue is that the older CI images are using a version of brew that without running `brew update` first, is trying to download packages like Boost, from bintray (which no-longer works). This also includes #20182, as by fixing macOS failure, via running `brew upgrade`, we end up using a newer version of miniupnpc, which emits a GNU extension related warning, and causes the build to fail, because we use `-Werror`. Backporting #20535 should fix #22581. ACKs for top commit: hebasto: ACK 55e941f, I verified changes by backporting locally. Tree-SHA512: 3ab2c5c73c707d0f5b862264f3a0179cdeee30ae55aae872f3c3e0bb81d71a5027c39ba830210c99a21f98cc86c4167c4f215e24d1a8891ec79ce512debf82df
Needed to remain compatible with backport commit 681f728 Github-Pull: bitcoin#20182 Rebased-From: 2f6fe4e
This PR prevents introducing of new compiler warnings in the master branch, e.g., #19986, #20162.