-
Notifications
You must be signed in to change notification settings - Fork 36.2k
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
build: Make --enable-suppress-external-warnings the default #22041
Conversation
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 There is a trade-off here: making Since we have to choose a default I think it makes sense to make the higher signal-to-noise alternative which focuses on local issues the default ( |
Concept ~0 The idea behind I don't agree with hiding warnings from users in order to increase their trust. The users' mistrust may increase if they understand that devs have swept under the carpet "dangerous" things.
Devs can use
IMO OTOH warnings from external libraries are already suppressed if they are installed in |
I assume all CI and all/most devs already use |
Thanks for sharing your opinion!
We already hide warnings from
Isn't it the same as not passing non-default
I'm among them :) |
Yes, it is! And also, if external headers are installed in There are arguments for both doing and not doing this. Would be interesting to see what others think. |
🐙 This pull request conflicts with the target branch and needs rebase. Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft". |
Concept ACK |
This is split from #21667.
For users, one of the preferred ways to use the Bitcoin Core client is compiling from source, either downloaded as a part of release or acquired via git.
Only basic knowledge about terminal is required to run:
Also, it is natural to expect that number of users that have such knowledge is higher than the number of advanced users or developers.
Assuming the basic knowledge level of users it seems unwise to allow compiler and linker warnings because they could undermine the users' trust in the Bitcoin Core quality/security/reliability.
Of course, warnings could be emitted by different parts of code: either the code we are responsible for, or third parties code, including sub-trees in our repo:
and other dependencies:
Currently, warnings from
leveldb
are suppressed unconditionally:bitcoin/src/Makefile.leveldb.include
Line 39 in 5990009
OTOH, warnings from Qt and Boost code could be suppressed with the
--enable-suppress-external-warnings
configure option.Making the
--enable-suppress-external-warnings
the default has the following benefits:-W
and-Werror
options by default (for example,-Wdocumentation
and-Werror=documentation
introduced in build: enable -Wdocumentation #21613)There was an objection:
The answer to this objection is that fixing "things upstream" is not the top priority for developers. It is always possible to build with the
--disable-suppress-external-warnings
. Even more, with this PR the--disable-suppress-external-warnings
will revealleveldb
warning as well.