This PR makes macOS builds Clang-only by switching the build compiler in depends to clang + libc++.
See: #30206.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32764.
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.
Reviewers, this pull request conflicts with the following ones:
-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.
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
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
libcxx (19). We could also upstream a libcxx-20 now, which could then be used if we switch to LLVM/Clang 20.
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
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.
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.
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?