Skip to content

Conversation

hebasto
Copy link
Member

@hebasto hebasto commented Jun 17, 2025

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

See: #30206.

@DrahtBot
Copy link
Contributor

DrahtBot commented Jun 17, 2025

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:

  • #33185 (guix: update time-machine to 5cb84f2013c5b1e48a7d0e617032266f1e6059e2 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.

Copy link
Contributor

@w0xlt w0xlt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept ACK

@hebasto
Copy link
Member Author

hebasto commented Jun 18, 2025

My Guix build:

aarch64
8c0763a9a52cbad53dd2e6c6bb9472f3738d1debc31d554117afbc8681ad715a  guix-build-4be8f47a89ef/output/aarch64-linux-gnu/SHA256SUMS.part
668d90736b33c1afac33478f2abb4ddbc67e6383e16fe377a4d3562a3440f453  guix-build-4be8f47a89ef/output/aarch64-linux-gnu/bitcoin-4be8f47a89ef-aarch64-linux-gnu-debug.tar.gz
394a1821a29a7410ea7f9d4d11006ffeb006160ad951a758f074810021f20bf8  guix-build-4be8f47a89ef/output/aarch64-linux-gnu/bitcoin-4be8f47a89ef-aarch64-linux-gnu.tar.gz
601c387159a38e8e2574c4fe6a787eccea9a99cffc4e207cb088a8a6b00a1a80  guix-build-4be8f47a89ef/output/arm-linux-gnueabihf/SHA256SUMS.part
a595f2a16018cbbce849def4ca677190d082b3968f4ddfb60cbe6a46ed9140c3  guix-build-4be8f47a89ef/output/arm-linux-gnueabihf/bitcoin-4be8f47a89ef-arm-linux-gnueabihf-debug.tar.gz
8b1305f5eb83c2292aab0579e7d4a662666d54635d875e9242b134e8439f038f  guix-build-4be8f47a89ef/output/arm-linux-gnueabihf/bitcoin-4be8f47a89ef-arm-linux-gnueabihf.tar.gz
181d6c8dc7d8c212120ea6d353659aafa6510214e6302f9e5c96f646e96143d4  guix-build-4be8f47a89ef/output/arm64-apple-darwin/SHA256SUMS.part
6c01be7142ce6d3f4d03d58e9c059ddb78c4518a5a018a8e49494a8ae97331c5  guix-build-4be8f47a89ef/output/arm64-apple-darwin/bitcoin-4be8f47a89ef-arm64-apple-darwin-codesigning.tar.gz
bddf9ea401e06d8fc1ba4e372b092db840ca0320e637c51d1eb7036713ccd970  guix-build-4be8f47a89ef/output/arm64-apple-darwin/bitcoin-4be8f47a89ef-arm64-apple-darwin-unsigned.tar.gz
90526bad3b242fef4d852b4342c6457cb43c9e3634804035820cd2e181cd4341  guix-build-4be8f47a89ef/output/arm64-apple-darwin/bitcoin-4be8f47a89ef-arm64-apple-darwin-unsigned.zip
554e4c6c05306ea04b7470142ce53c8ff72422b9d3186333e98f5f63971088b1  guix-build-4be8f47a89ef/output/dist-archive/bitcoin-4be8f47a89ef.tar.gz
8092dcb17dd9cb62744cbd7567913d7f1a69a88362702b6245af6f5a1cc0c679  guix-build-4be8f47a89ef/output/powerpc64-linux-gnu/SHA256SUMS.part
b8aa6aab308aa40a32c634599c25fa543c15b4580717b8c5f00587411efcdd40  guix-build-4be8f47a89ef/output/powerpc64-linux-gnu/bitcoin-4be8f47a89ef-powerpc64-linux-gnu-debug.tar.gz
31fc45b3590e52257aae41a881096bb10a76e85544790643ba9fb091e1c87e2b  guix-build-4be8f47a89ef/output/powerpc64-linux-gnu/bitcoin-4be8f47a89ef-powerpc64-linux-gnu.tar.gz
727c7ffb480fde86177f8e655aa0ea1b1d11cdf7e382189c9c60e527b136c270  guix-build-4be8f47a89ef/output/riscv64-linux-gnu/SHA256SUMS.part
a6e0635c88d647ac2355a7b10f3fa34f271d81d556913586084fdfc9e7185662  guix-build-4be8f47a89ef/output/riscv64-linux-gnu/bitcoin-4be8f47a89ef-riscv64-linux-gnu-debug.tar.gz
0d27f6ecc9c3deb00071801bcb6b1076a1bda0c6a8c9e4d17371ea9478de43df  guix-build-4be8f47a89ef/output/riscv64-linux-gnu/bitcoin-4be8f47a89ef-riscv64-linux-gnu.tar.gz
b4be88490fcfa2fba41087b5cd816ec256897eb6f869196a86bc81dbe46e6f89  guix-build-4be8f47a89ef/output/x86_64-apple-darwin/SHA256SUMS.part
0e8a275fb35ed6e77cfbded5115d7bc0fa567a9651ffbb94fd64a18561e1eac2  guix-build-4be8f47a89ef/output/x86_64-apple-darwin/bitcoin-4be8f47a89ef-x86_64-apple-darwin-codesigning.tar.gz
b3a636d8f53c3cebcc234047950b14927cdd99939bf6ed14b9eccecf1e04c4e1  guix-build-4be8f47a89ef/output/x86_64-apple-darwin/bitcoin-4be8f47a89ef-x86_64-apple-darwin-unsigned.tar.gz
d22453153abbd55dc943971c4cd9b63605908397ca8fd42322ce2dc58ee7401d  guix-build-4be8f47a89ef/output/x86_64-apple-darwin/bitcoin-4be8f47a89ef-x86_64-apple-darwin-unsigned.zip
99f4bb5f3a6c5fa662f2527f5651253fcda2248550bfff8879e4a91fe0299d0e  guix-build-4be8f47a89ef/output/x86_64-linux-gnu/SHA256SUMS.part
ba103b6c2cdee03637372b3d0af6011f4f7471b488eac3768d4b538342efda65  guix-build-4be8f47a89ef/output/x86_64-linux-gnu/bitcoin-4be8f47a89ef-x86_64-linux-gnu-debug.tar.gz
68a12d9c4c75f5040d55fca09729af2dd9c4ba986fce78f28a86508a7d97bfbf  guix-build-4be8f47a89ef/output/x86_64-linux-gnu/bitcoin-4be8f47a89ef-x86_64-linux-gnu.tar.gz
88f1e3e6c69341fd3b40e2afffe05ccc574d9fa63fc7c9c77ab8694d6e8e63df  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/SHA256SUMS.part
36dc8a4b16ad26e260f2539e3cf1147fe3a1bc9807a1bbf143090065c2d8ef4b  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/bitcoin-4be8f47a89ef-win64-codesigning.tar.gz
9aa9abc97a54c9c690f7e0cdb74c6a123c6eb42782372009e4d83fd746e8ae88  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/bitcoin-4be8f47a89ef-win64-debug.zip
51580852b8b26f0e0fb0843d56d9978279e9ecaa0b18a38940df9ef437ccc1de  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/bitcoin-4be8f47a89ef-win64-setup-unsigned.exe
4e9dd52f7b7be6b4eb09740a79e4f4e9fef4244962d707848b916c483792cc27  guix-build-4be8f47a89ef/output/x86_64-w64-mingw32/bitcoin-4be8f47a89ef-win64-unsigned.zip

@hebasto hebasto marked this pull request as ready for review June 18, 2025 12:49
@@ -493,6 +493,54 @@ inspecting signatures in Mach-O binaries.")
(("^install-others =.*$")
(string-append "install-others = " out "/etc/rpc\n")))))))))))))

(define-public libcxx-18 ;; 18.1.8
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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). We could also upstream a libcxx-20 now, which could then be used if we switch to LLVM/Clang 20.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

riscv64-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
...
build of /gnu/store/2drzypp2rgya0qcab3izkv9d8ib0kqvv-glibc-cross-riscv64-linux-gnu-2.31.drv failed

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

See #33185.

@Sjors
Copy link
Member

Sjors commented Jun 19, 2025

My Guix build matches @hebasto. No opinion on the change though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants