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 +85 −16
  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. guix: Define `libcxx-18` package 6ad54dce4a
  3. guix: Build for macOS using Clang only 4be8f47a89
  4. hebasto added the label Build system on Jun 17, 2025
  5. 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)

    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.

  6. w0xlt commented at 11:10 pm on June 17, 2025: contributor
    Concept ACK
  7. 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
    
  8. hebasto marked this as ready for review on Jun 18, 2025
  9. in contrib/guix/manifest.scm:496 in 4be8f47a89
    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
    
  10. Sjors commented at 2:05 pm on June 19, 2025: member
    My Guix build matches @hebasto. No opinion on the change though.

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-07-01 09:13 UTC

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