guix: Build for macOS using Clang only #32764

pull hebasto wants to merge 2 commits into bitcoin:master from hebasto:250617-guix-libcxx changing 2 files +87 −17
  1. hebasto commented at 1:39 pm on June 17, 2025: member

    This PR makes macOS builds Clang-only by switching the build compiler in depends to clang + libc++.

    See: #30206.

  2. hebasto added the label Build system on Jun 17, 2025
  3. DrahtBot commented at 1:39 pm on June 17, 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/32764.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Concept ACK w0xlt

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #32162 (depends: Switch from multilib to platform-specific toolchains by hebasto)
    • #25573 ([POC] guix: produce a fully -static-pie bitcoind by fanquake)

    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.

  4. w0xlt commented at 11:10 pm on June 17, 2025: contributor
    Concept ACK
  5. hebasto commented at 12:48 pm on June 18, 2025: member

    My Guix build:

     0aarch64
     18c0763a9a52cbad53dd2e6c6bb9472f3738d1debc31d554117afbc8681ad715a  guix-build-4be8f47a89ef/output/aarch64-linux-gnu/SHA256SUMS.part
     2668d90736b33c1afac33478f2abb4ddbc67e6383e16fe377a4d3562a3440f453  guix-build-4be8f47a89ef/output/aarch64-linux-gnu/bitcoin-4be8f47a89ef-aarch64-linux-gnu-debug.tar.gz
     3394a1821a29a7410ea7f9d4d11006ffeb006160ad951a758f074810021f20bf8  guix-build-4be8f47a89ef/output/aarch64-linux-gnu/bitcoin-4be8f47a89ef-aarch64-linux-gnu.tar.gz
     4601c387159a38e8e2574c4fe6a787eccea9a99cffc4e207cb088a8a6b00a1a80  guix-build-4be8f47a89ef/output/arm-linux-gnueabihf/SHA256SUMS.part
     5a595f2a16018cbbce849def4ca677190d082b3968f4ddfb60cbe6a46ed9140c3  guix-build-4be8f47a89ef/output/arm-linux-gnueabihf/bitcoin-4be8f47a89ef-arm-linux-gnueabihf-debug.tar.gz
     68b1305f5eb83c2292aab0579e7d4a662666d54635d875e9242b134e8439f038f  guix-build-4be8f47a89ef/output/arm-linux-gnueabihf/bitcoin-4be8f47a89ef-arm-linux-gnueabihf.tar.gz
     7181d6c8dc7d8c212120ea6d353659aafa6510214e6302f9e5c96f646e96143d4  guix-build-4be8f47a89ef/output/arm64-apple-darwin/SHA256SUMS.part
     86c01be7142ce6d3f4d03d58e9c059ddb78c4518a5a018a8e49494a8ae97331c5  guix-build-4be8f47a89ef/output/arm64-apple-darwin/bitcoin-4be8f47a89ef-arm64-apple-darwin-codesigning.tar.gz
     9bddf9ea401e06d8fc1ba4e372b092db840ca0320e637c51d1eb7036713ccd970  guix-build-4be8f47a89ef/output/arm64-apple-darwin/bitcoin-4be8f47a89ef-arm64-apple-darwin-unsigned.tar.gz
    1090526bad3b242fef4d852b4342c6457cb43c9e3634804035820cd2e181cd4341  guix-build-4be8f47a89ef/output/arm64-apple-darwin/bitcoin-4be8f47a89ef-arm64-apple-darwin-unsigned.zip
    11554e4c6c05306ea04b7470142ce53c8ff72422b9d3186333e98f5f63971088b1  guix-build-4be8f47a89ef/output/dist-archive/bitcoin-4be8f47a89ef.tar.gz
    128092dcb17dd9cb62744cbd7567913d7f1a69a88362702b6245af6f5a1cc0c679  guix-build-4be8f47a89ef/output/powerpc64-linux-gnu/SHA256SUMS.part
    13b8aa6aab308aa40a32c634599c25fa543c15b4580717b8c5f00587411efcdd40  guix-build-4be8f47a89ef/output/powerpc64-linux-gnu/bitcoin-4be8f47a89ef-powerpc64-linux-gnu-debug.tar.gz
    1431fc45b3590e52257aae41a881096bb10a76e85544790643ba9fb091e1c87e2b  guix-build-4be8f47a89ef/output/powerpc64-linux-gnu/bitcoin-4be8f47a89ef-powerpc64-linux-gnu.tar.gz
    15727c7ffb480fde86177f8e655aa0ea1b1d11cdf7e382189c9c60e527b136c270  guix-build-4be8f47a89ef/output/riscv64-linux-gnu/SHA256SUMS.part
    16a6e0635c88d647ac2355a7b10f3fa34f271d81d556913586084fdfc9e7185662  guix-build-4be8f47a89ef/output/riscv64-linux-gnu/bitcoin-4be8f47a89ef-riscv64-linux-gnu-debug.tar.gz
    170d27f6ecc9c3deb00071801bcb6b1076a1bda0c6a8c9e4d17371ea9478de43df  guix-build-4be8f47a89ef/output/riscv64-linux-gnu/bitcoin-4be8f47a89ef-riscv64-linux-gnu.tar.gz
    18b4be88490fcfa2fba41087b5cd816ec256897eb6f869196a86bc81dbe46e6f89  guix-build-4be8f47a89ef/output/x86_64-apple-darwin/SHA256SUMS.part
    190e8a275fb35ed6e77cfbded5115d7bc0fa567a9651ffbb94fd64a18561e1eac2  guix-build-4be8f47a89ef/output/x86_64-apple-darwin/bitcoin-4be8f47a89ef-x86_64-apple-darwin-codesigning.tar.gz
    20b3a636d8f53c3cebcc234047950b14927cdd99939bf6ed14b9eccecf1e04c4e1  guix-build-4be8f47a89ef/output/x86_64-apple-darwin/bitcoin-4be8f47a89ef-x86_64-apple-darwin-unsigned.tar.gz
    21d22453153abbd55dc943971c4cd9b63605908397ca8fd42322ce2dc58ee7401d  guix-build-4be8f47a89ef/output/x86_64-apple-darwin/bitcoin-4be8f47a89ef-x86_64-apple-darwin-unsigned.zip
    2299f4bb5f3a6c5fa662f2527f5651253fcda2248550bfff8879e4a91fe0299d0e  guix-build-4be8f47a89ef/output/x86_64-linux-gnu/SHA256SUMS.part
    23ba103b6c2cdee03637372b3d0af6011f4f7471b488eac3768d4b538342efda65  guix-build-4be8f47a89ef/output/x86_64-linux-gnu/bitcoin-4be8f47a89ef-x86_64-linux-gnu-debug.tar.gz
    2468a12d9c4c75f5040d55fca09729af2dd9c4ba986fce78f28a86508a7d97bfbf  guix-build-4be8f47a89ef/output/x86_64-linux-gnu/bitcoin-4be8f47a89ef-x86_64-linux-gnu.tar.gz
    2588f1e3e6c69341fd3b40e2afffe05ccc574d9fa63fc7c9c77ab8694d6e8e63df  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/SHA256SUMS.part
    2636dc8a4b16ad26e260f2539e3cf1147fe3a1bc9807a1bbf143090065c2d8ef4b  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/bitcoin-4be8f47a89ef-win64-codesigning.tar.gz
    279aa9abc97a54c9c690f7e0cdb74c6a123c6eb42782372009e4d83fd746e8ae88  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/bitcoin-4be8f47a89ef-win64-debug.zip
    2851580852b8b26f0e0fb0843d56d9978279e9ecaa0b18a38940df9ef437ccc1de  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/bitcoin-4be8f47a89ef-win64-setup-unsigned.exe
    294e9dd52f7b7be6b4eb09740a79e4f4e9fef4244962d707848b916c483792cc27  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/bitcoin-4be8f47a89ef-win64-unsigned.zip
    
  6. hebasto marked this as ready for review on Jun 18, 2025
  7. in contrib/guix/manifest.scm:496 in 4be8f47a89 outdated
    492@@ -493,6 +493,54 @@ inspecting signatures in Mach-O binaries.")
    493                    (("^install-others =.*$")
    494                     (string-append "install-others = " out "/etc/rpc\n")))))))))))))
    495 
    496+(define-public libcxx-18 ;; 18.1.8
    


    fanquake commented at 12:54 pm on June 19, 2025:
    In 6ad54dce4a18b583f3c318ec078faa5a1412030a: Rather than adding a package here, I think we should wait until we next bump the time-machine (I’ve got a branch with some changes for this), where we’ll likely use LLVM/Clang 19, and then can just use libcxx (19). We could also upstream a libcxx-20 now, which could then be used if we switch to LLVM/Clang 20.

    hebasto commented at 7:54 am on June 20, 2025:

    In 6ad54dc: Rather than adding a package here, I think we should wait until we next bump the time-machine (I’ve got a branch with some changes for this), where we’ll likely use LLVM/Clang 19, and then can just use libcxx (19).

    That was my initial approach, as suggested in #30206 (comment). Unfortunately, there’s an upstream issue in Guix affecting the riscv64 host:

    0riscv64-linux-gnu-ld: relocation R_RISCV_RVC_JUMP against `__sigsetjmp' which may bind externally can not be used when making a shared object; recompile with -fPIC
    1...
    2build of /gnu/store/2drzypp2rgya0qcab3izkv9d8ib0kqvv-glibc-cross-riscv64-linux-gnu-2.31.drv failed
    

    fanquake commented at 4:00 pm on August 13, 2025:

    Unfortunately, there’s an upstream issue in Guix affecting the riscv64 host:

    See #33185.

  8. Sjors commented at 2:05 pm on June 19, 2025: member
    My Guix build matches @hebasto. No opinion on the change though.
  9. DrahtBot added the label Needs rebase on Sep 8, 2025
  10. hebasto force-pushed on Sep 9, 2025
  11. DrahtBot removed the label Needs rebase on Sep 9, 2025
  12. fanquake referenced this in commit 27cd7f5049 on Oct 28, 2025
  13. DrahtBot added the label Needs rebase on Oct 28, 2025
  14. hebasto force-pushed on Oct 28, 2025
  15. hebasto commented at 10:27 pm on October 28, 2025: member
    Rebased to resolve a conflict with the merged bitcoin/bitcoin#33185.
  16. guix: Define `libcxx-19` package 7e519c71c8
  17. guix: Build for macOS using Clang only 7c97bae595
  18. hebasto force-pushed on Oct 28, 2025
  19. DrahtBot removed the label Needs rebase on Oct 28, 2025
  20. hebasto commented at 1:09 am on October 29, 2025: member

    My Guix build:

     0aarch64
     1a8613aaa30cc598f8f193932478e57381299399fb1a6a3e8cd27d41ed58e1a2c  guix-build-7c97bae595b0/output/aarch64-linux-gnu/SHA256SUMS.part
     26b32bd6a25e2c8b2823efc9deb8d9dc1fd4da7713dc00992ee721171500ebbf0  guix-build-7c97bae595b0/output/aarch64-linux-gnu/bitcoin-7c97bae595b0-aarch64-linux-gnu-debug.tar.gz
     3fbda951a67c0b02a9c4ed8014b3371ecacf7c41f2f0338653963c2f765e29f7f  guix-build-7c97bae595b0/output/aarch64-linux-gnu/bitcoin-7c97bae595b0-aarch64-linux-gnu.tar.gz
     4d99914fd2262ca97d50c324273f9c026226aed5895647f08d7072483f23584fa  guix-build-7c97bae595b0/output/arm-linux-gnueabihf/SHA256SUMS.part
     537de23fe9c44d52574f533628614f25139deb76b6132b48e1584724d075ac5fb  guix-build-7c97bae595b0/output/arm-linux-gnueabihf/bitcoin-7c97bae595b0-arm-linux-gnueabihf-debug.tar.gz
     6a82ae6dc9e82f8d06e59968b7fec2b830e3bf58e4a822b718261fdf31c198267  guix-build-7c97bae595b0/output/arm-linux-gnueabihf/bitcoin-7c97bae595b0-arm-linux-gnueabihf.tar.gz
     7a1470dcea94f1f0d37b7bb9328d34b25faa5d4a98b4c9cbfadb2a9fb36a26c77  guix-build-7c97bae595b0/output/arm64-apple-darwin/SHA256SUMS.part
     884c5710551d7f747818ea30460d172766dc7c09a11a1924ff583e0990a06cd95  guix-build-7c97bae595b0/output/arm64-apple-darwin/bitcoin-7c97bae595b0-arm64-apple-darwin-codesigning.tar.gz
     913cfa8fc332c21e10292668e6cf2756a760105c2bff5ec1beea5e497ca3d8f2a  guix-build-7c97bae595b0/output/arm64-apple-darwin/bitcoin-7c97bae595b0-arm64-apple-darwin-unsigned.tar.gz
    10d4f31163fe3adf542e1ede425f549c259e97ff9904ed06b130403a994f3c389b  guix-build-7c97bae595b0/output/arm64-apple-darwin/bitcoin-7c97bae595b0-arm64-apple-darwin-unsigned.zip
    1145b8779112cd143e9acdc75c6eb954df5ebc7fc7b78ed3ec9cbf24c4420c27e5  guix-build-7c97bae595b0/output/dist-archive/bitcoin-7c97bae595b0.tar.gz
    12876d77626c1a811b4b6a6aa6101719044460bf6bbc9765c31cabef77efcd23aa  guix-build-7c97bae595b0/output/powerpc64-linux-gnu/SHA256SUMS.part
    133563712930b68ac73631b74bd3a26046bdd412e3e526750f380e6200a1fb1af3  guix-build-7c97bae595b0/output/powerpc64-linux-gnu/bitcoin-7c97bae595b0-powerpc64-linux-gnu-debug.tar.gz
    146aba1bbe0a6bbb12150aef858ff003ba24456e7c468a25b2c801601ccbfe0953  guix-build-7c97bae595b0/output/powerpc64-linux-gnu/bitcoin-7c97bae595b0-powerpc64-linux-gnu.tar.gz
    15247fdd81f408f242ce2ede54d41594b1976bea326b9b1f0530e5f53c28bbac93  guix-build-7c97bae595b0/output/riscv64-linux-gnu/SHA256SUMS.part
    16f7e60d53d19693120a8c8818991f5389d5441af363508be4934ddeb6cb078c32  guix-build-7c97bae595b0/output/riscv64-linux-gnu/bitcoin-7c97bae595b0-riscv64-linux-gnu-debug.tar.gz
    1735b08d1387d514ecc535d5449ccd6bc39be398ac57dd6b3db6bb4829e93c6196  guix-build-7c97bae595b0/output/riscv64-linux-gnu/bitcoin-7c97bae595b0-riscv64-linux-gnu.tar.gz
    18351f54d2a4238c19332ca843716377fdf147b9f736b3835184b09ae4a87a9db1  guix-build-7c97bae595b0/output/x86_64-apple-darwin/SHA256SUMS.part
    1979206105e4cb2b3aa0fa18c82d0e34ebddf1abbb2babb3cfa297d25fcf2f4a5b  guix-build-7c97bae595b0/output/x86_64-apple-darwin/bitcoin-7c97bae595b0-x86_64-apple-darwin-codesigning.tar.gz
    209ffc8d0bde1177eb90d1e7182f41b47b7f935095e9310fde8ff4ce022354ca07  guix-build-7c97bae595b0/output/x86_64-apple-darwin/bitcoin-7c97bae595b0-x86_64-apple-darwin-unsigned.tar.gz
    218a04c1d952c1d8e7e812dc925c16b0f01aebfb7ea3cad9dde4ffd86f69bfbd40  guix-build-7c97bae595b0/output/x86_64-apple-darwin/bitcoin-7c97bae595b0-x86_64-apple-darwin-unsigned.zip
    22b31a168a253ce8cd0f20b0bba8669dd78af619d7ffaf4afe6215763984f73c06  guix-build-7c97bae595b0/output/x86_64-linux-gnu/SHA256SUMS.part
    2346783dbaddd91f33a8de978ace54cacc5e3f1b3847eb6b3da2b659ceb771aae6  guix-build-7c97bae595b0/output/x86_64-linux-gnu/bitcoin-7c97bae595b0-x86_64-linux-gnu-debug.tar.gz
    244c899d06467b3706092a2310eea7e83d2bb1f6ed0e5bca3143e8a3601b0f1b58  guix-build-7c97bae595b0/output/x86_64-linux-gnu/bitcoin-7c97bae595b0-x86_64-linux-gnu.tar.gz
    2544cbac82e52866d75f348b4f77a124ce0ab1d16dbd1dff791b13b276cfd1bfdd  guix-build-7c97bae595b0/output/x86_64-w64-mingw32/SHA256SUMS.part
    26356a3c78d3925ce6d684bed05e01dc5d24519fecad36be2f2658ddaee986e75d  guix-build-7c97bae595b0/output/x86_64-w64-mingw32/bitcoin-7c97bae595b0-win64-codesigning.tar.gz
    27a8e6700f105860060b01589de985747a02f593feb9712296a02e6822ec3ed927  guix-build-7c97bae595b0/output/x86_64-w64-mingw32/bitcoin-7c97bae595b0-win64-debug.zip
    2874eb43dbc3418071bf338f62adc2d65fd7ef525ba5c0e8dd9d4db20be53da9c2  guix-build-7c97bae595b0/output/x86_64-w64-mingw32/bitcoin-7c97bae595b0-win64-setup-unsigned.exe
    2975e32936458cc156f3ec6aa86a7054059e35f2e2ef9a11c1d0b061d86270767e  guix-build-7c97bae595b0/output/x86_64-w64-mingw32/bitcoin-7c97bae595b0-win64-unsigned.zip
    

    UPD. Same hashes on x86_64.

  21. in contrib/guix/manifest.scm:496 in 7c97bae595
    492@@ -493,6 +493,55 @@ inspecting signatures in Mach-O binaries.")
    493                    (("^install-others =.*$")
    494                     (string-append "install-others = " out "/etc/rpc\n")))))))))))))
    495 
    496+;; This can be dropped after commit 2877c75dc5db0dbf664fb6170d5754068e941d91.
    


    fanquake commented at 12:08 pm on October 29, 2025:

    This can be dropped after commit 2877c75dc5db0dbf664fb6170d5754068e941d91.

    Would be good for this to explain why (is libunwind causing build issues?). Could also mention that this is copy-pasted from Guix, and I assume the intention isn’t to change it here, if we plan on dropping it?


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-11-01 00:13 UTC

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