depends: disable builtin rules and suffixes. #33045

pull fanquake wants to merge 1 commits into bitcoin:master from fanquake:22126_rebased changing 1 files +2 −0
  1. fanquake commented at 3:24 pm on July 23, 2025: member

    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, and we should be able to use the flag directly.

    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.

     0Considering target file 'all'.
     1 File 'all' does not exist.
     2 Looking for an implicit rule for 'all'.
     3 Trying pattern rule with stem 'all'.
     4 Trying implicit prerequisite 'all.o'.
     5 Trying pattern rule with stem 'all'.
     6 Trying implicit prerequisite 'all.c'.
     7 Trying pattern rule with stem 'all'.
     8 Trying implicit prerequisite 'all.cc'.
     9 Trying pattern rule with stem 'all'.
    10 Trying implicit prerequisite 'all.C'.
    11 Trying pattern rule with stem 'all'.
    12 Trying implicit prerequisite 'all.cpp'.
    13 Trying pattern rule with stem 'all'.
    14 Trying implicit prerequisite 'all.p'.
    15 Trying pattern rule with stem 'all'.
    16 Trying implicit prerequisite 'all.f'.
    17...
    

    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.

    Also see: https://www.gnu.org/software/make/manual/make.html#index-_002d_002dno_002dbuiltin_002drules.

  2. DrahtBot added the label Build system on Jul 23, 2025
  3. DrahtBot commented at 3:24 pm on July 23, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33045.

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

  4. fanquake added the label DrahtBot Guix build requested on Jul 23, 2025
  5. fanquake commented at 10:40 am on July 24, 2025: member

    Guix build (aarch64):

     05702ab3b5222a5ec2c2d901692f8d9f1eddd93b40b39ff48fd87076a3e11c6b7  guix-build-9ef65a3df7a8/output/aarch64-linux-gnu/SHA256SUMS.part
     1808b47ca979c07c77e26073f1fab3c5bc894541298092bbc99d2e9f59ff7cb4b  guix-build-9ef65a3df7a8/output/aarch64-linux-gnu/bitcoin-9ef65a3df7a8-aarch64-linux-gnu-debug.tar.gz
     264ff4842f37a1e8ea949a2946144cce1cbb7ec4351424f85b2fc90e4e7d24ef6  guix-build-9ef65a3df7a8/output/aarch64-linux-gnu/bitcoin-9ef65a3df7a8-aarch64-linux-gnu.tar.gz
     330273fd2f78587955e87d0279f1142fc65042d35ea088d7442491322cb6ea86b  guix-build-9ef65a3df7a8/output/arm-linux-gnueabihf/SHA256SUMS.part
     44c8bb67aa116b604e419f8eb96ead1fbb7cb4bb9c5d8e47deb4ffe5f14805737  guix-build-9ef65a3df7a8/output/arm-linux-gnueabihf/bitcoin-9ef65a3df7a8-arm-linux-gnueabihf-debug.tar.gz
     5371b32a913719a44125a79840c6d4f44b649f2d8bda683481b634d48f6fc4ba5  guix-build-9ef65a3df7a8/output/arm-linux-gnueabihf/bitcoin-9ef65a3df7a8-arm-linux-gnueabihf.tar.gz
     6091da57e505dd700e7e87d152f26e8974c6b7d01bb3553585016e2233a5a65c9  guix-build-9ef65a3df7a8/output/arm64-apple-darwin/SHA256SUMS.part
     71faf95b9b35ac1c90febaaee799ede1be0b3bd140f085b7795934fa28041fc41  guix-build-9ef65a3df7a8/output/arm64-apple-darwin/bitcoin-9ef65a3df7a8-arm64-apple-darwin-codesigning.tar.gz
     885721edfea52a950d50d96dd26368f646e19382d03eb65de79a832e5d5490031  guix-build-9ef65a3df7a8/output/arm64-apple-darwin/bitcoin-9ef65a3df7a8-arm64-apple-darwin-unsigned.tar.gz
     96c500e11a05dae9b0d70af3080d2e3dccae8ea10b8c32cf78e49a492f90c648b  guix-build-9ef65a3df7a8/output/arm64-apple-darwin/bitcoin-9ef65a3df7a8-arm64-apple-darwin-unsigned.zip
    1053557858cda53b1142b601232cdc934211a199da90a49ccdaa26df2b7c1c3ffc  guix-build-9ef65a3df7a8/output/dist-archive/bitcoin-9ef65a3df7a8.tar.gz
    1149fdc57648d17bca0f3a05a600d2e13239d9b96bddbb440b5391ac2cc1b51f46  guix-build-9ef65a3df7a8/output/powerpc64-linux-gnu/SHA256SUMS.part
    124b152a54e2c74457cbcf4aeff15d54221cf36b4ba40734f6cfc11ae5beb35731  guix-build-9ef65a3df7a8/output/powerpc64-linux-gnu/bitcoin-9ef65a3df7a8-powerpc64-linux-gnu-debug.tar.gz
    13ee650672f3db0e92baeef500ee1ccc5d37416b246426712d8094a3f132677b0e  guix-build-9ef65a3df7a8/output/powerpc64-linux-gnu/bitcoin-9ef65a3df7a8-powerpc64-linux-gnu.tar.gz
    141b02f40c765f0c96e3d72c96a1fb159dc986bb9a71e0852041c83f07760df67f  guix-build-9ef65a3df7a8/output/riscv64-linux-gnu/SHA256SUMS.part
    1578f3d2bbf26ebc1526a2405b475d06a6885baf3c25a305d69f5a40ae941ca422  guix-build-9ef65a3df7a8/output/riscv64-linux-gnu/bitcoin-9ef65a3df7a8-riscv64-linux-gnu-debug.tar.gz
    16262303626a4cc7bae3ba1e5507a48aa31d06c9d39f7e0d2f396c63287fbf06da  guix-build-9ef65a3df7a8/output/riscv64-linux-gnu/bitcoin-9ef65a3df7a8-riscv64-linux-gnu.tar.gz
    17cf0b0a7044d305bd56e1bbbffcb5a0b91faa1878191eb97bf0bad49e0f018174  guix-build-9ef65a3df7a8/output/x86_64-apple-darwin/SHA256SUMS.part
    18c1139e5aabbd211babe00387611460ddef5a02a82c4f5e06903050cddb2ca624  guix-build-9ef65a3df7a8/output/x86_64-apple-darwin/bitcoin-9ef65a3df7a8-x86_64-apple-darwin-codesigning.tar.gz
    193a403136957d62a9e03dab3e76d246149d9b5afdeef9b9fd012db8e9efc73e7f  guix-build-9ef65a3df7a8/output/x86_64-apple-darwin/bitcoin-9ef65a3df7a8-x86_64-apple-darwin-unsigned.tar.gz
    20dc5b226b363ef30f5be11c769e29a2784240e0fce4d3eac1106f50232cde9932  guix-build-9ef65a3df7a8/output/x86_64-apple-darwin/bitcoin-9ef65a3df7a8-x86_64-apple-darwin-unsigned.zip
    21160a43835708607317b125661bbdabb1d1c3155344862ddf0f5226756f7513e5  guix-build-9ef65a3df7a8/output/x86_64-linux-gnu/SHA256SUMS.part
    22fcf9e9c4bfcb1255429b3d2657c4a32d1ca68251532a4df8f60c2c7eda89af71  guix-build-9ef65a3df7a8/output/x86_64-linux-gnu/bitcoin-9ef65a3df7a8-x86_64-linux-gnu-debug.tar.gz
    232cbe75a57e7beaab1043e6146a47d79349579e588eb720328cf8d527af36396b  guix-build-9ef65a3df7a8/output/x86_64-linux-gnu/bitcoin-9ef65a3df7a8-x86_64-linux-gnu.tar.gz
    241cc9c9d44b4eb78fe960f6fdd9312059dc68d78f3b609b510ae553c70f3a85ff  guix-build-9ef65a3df7a8/output/x86_64-w64-mingw32/SHA256SUMS.part
    25b17f3e00a5ffa9ef1ddf9dce8e05b8ec1f05d11f690eedee86035ccb64b67931  guix-build-9ef65a3df7a8/output/x86_64-w64-mingw32/bitcoin-9ef65a3df7a8-win64-codesigning.tar.gz
    2615213b5b8290bde051c0e2bf9c0ea24ed57fb0f5e05b4f8aec7c2291f079d152  guix-build-9ef65a3df7a8/output/x86_64-w64-mingw32/bitcoin-9ef65a3df7a8-win64-debug.zip
    27fc9e095a06e6dedd81f8e13c8ad99ab07dc0072ec60ac1fe85c4bf5890270f6f  guix-build-9ef65a3df7a8/output/x86_64-w64-mingw32/bitcoin-9ef65a3df7a8-win64-setup-unsigned.exe
    288f8fb4e07102d1a77d260256e311814ba2f40275bba8d41a9cf42e89374a36c1  guix-build-9ef65a3df7a8/output/x86_64-w64-mingw32/bitcoin-9ef65a3df7a8-win64-unsigned.zip
    
  6. DrahtBot commented at 11:21 am on July 24, 2025: contributor

    Guix builds (on x86_64) [untrusted test-only build, possibly unsafe, not for production use]

    File commit 73e754bd01b0653d1fda2d947fcaed0742da81c3(master) commit 21f4a31c8a7f054e85e0e978bdd23c19ca487a69(pull/33045/merge)
    *-aarch64-linux-gnu-debug.tar.gz 66323aae7b9ce287... 913afa27e7edcace...
    *-aarch64-linux-gnu.tar.gz f91f331b0f58ca41... 8e0a47321ef370f2...
    *-arm-linux-gnueabihf-debug.tar.gz 35514683e2c806eb... 3f654c51e8fca816...
    *-arm-linux-gnueabihf.tar.gz 03b34325a162d549... 4f5b75460a1b99bd...
    *-arm64-apple-darwin-codesigning.tar.gz f22f13c2eca5fdfb... e6ce8199724a107b...
    *-arm64-apple-darwin-unsigned.tar.gz 3391effee20ec6af... 34e88ab254c31f2d...
    *-arm64-apple-darwin-unsigned.zip a502fe719ba93cd6... 551be5fd8181cfbf...
    *-powerpc64-linux-gnu-debug.tar.gz 5056cab7e5846f1a... 24eb381acb4a0e21...
    *-powerpc64-linux-gnu.tar.gz 8f2a3dc992ad2528... d58c2be9bbdc0a1e...
    *-riscv64-linux-gnu-debug.tar.gz dff0790128ad3e3b... 8fe4b7b1d494eebd...
    *-riscv64-linux-gnu.tar.gz 36f075d3e82d8118... ca4c95d02bc10b7c...
    *-x86_64-apple-darwin-codesigning.tar.gz f5c98678f07abadb... 29d3165d030c199c...
    *-x86_64-apple-darwin-unsigned.tar.gz 92f3bdbf703a28ba... 01b2a075580bea08...
    *-x86_64-apple-darwin-unsigned.zip 1ce72bf9ece268b9... 253a27b1fb825dd7...
    *-x86_64-linux-gnu-debug.tar.gz 6378973406ab790c... 77c232b9b592bd82...
    *-x86_64-linux-gnu.tar.gz 852bd5993a5e0af6... 4654cfb476133c39...
    *.tar.gz c374850b77d3191b... b677fe2965b77171...
    SHA256SUMS.part bb4156ff76c39233... e89eb8569e44abd8...
    guix_build.log 945c1eaecc45dbdd... f6a192c8fa22676a...
    guix_build.log.diff 61d0d7d432f7f2b2...
  7. DrahtBot removed the label DrahtBot Guix build requested on Jul 24, 2025
  8. depends: disable builtin rules and suffixes.
    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.
    3c80e171ec
  9. fanquake force-pushed on Jul 31, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-08-01 09:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me