-
Notifications
You must be signed in to change notification settings - Fork 37.7k
depends: disable variables, rules and suffixes. #33045
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
base: master
Are you sure you want to change the base?
Conversation
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33045. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. |
Guix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use] |
dc52d2d
to
d3c2bf1
Compare
d3c2bf1
to
3243f04
Compare
c467b06
to
803a2f5
Compare
Concept ACK and utACK 803a2f5. I was going to suggest:
But... BSD Make supports Only nit: Does anything depend on the builtin variables, or could we use |
When there is no rule to build a target in the makefile, make looks for a builtin rule. When -r is specified make no longer performs this lookup. E.g. the following in an excerpt from make -d output. Here, make looks for a rule to build 'all'. Considering target file 'all'. File 'all' does not exist. Looking for an implicit rule for 'all'. Trying pattern rule with stem 'all'. Trying implicit prerequisite 'all.o'. Trying pattern rule with stem 'all'. Trying implicit prerequisite 'all.c'. Trying pattern rule with stem 'all'. Trying implicit prerequisite 'all.cc'. Trying pattern rule with stem 'all'. Trying implicit prerequisite 'all.C'. Trying pattern rule with stem 'all'. Trying implicit prerequisite 'all.cpp'. Trying pattern rule with stem 'all'. Trying implicit prerequisite 'all.p'. Trying pattern rule with stem 'all'. Trying implicit prerequisite 'all.f'. ... Many more lines like this are omitted. Because this build system does not use make builtin rules or suffixes, there is no benefit in having builtin rules enabled. There are 2 benefits in having builtin rules disabled. 1. Improves performance by eliminating redundant lookups. 2. Simplifies troubleshooting by reducing the output of make -d or make -p.
803a2f5
to
d5e5db7
Compare
Pushed up a commit. |
Guix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use] |
This picks up #22126. Previously, this was more complicated to do, as depends packages (upnp, natpmp) used the rules being disabled. Those packages have since been removed.
When there is no rule to build a target in the makefile, make looks for a builtin rule. When
-r
is specified make no longer performs this lookup.E.g. the following in an excerpt from
make -d
output. Here, make looks for a rule to buildall
.Many more lines like this are omitted.
Because this build system does not use make builtin rules or suffixes, there is no benefit in having builtin rules enabled.
There are 2 benefits in having builtin rules disabled.
-d
or make-p
.Also see: https://www.gnu.org/software/make/manual/make.html#index-_002d_002dno_002dbuiltin_002drules.