-
Notifications
You must be signed in to change notification settings - Fork 38.7k
guix: use GCC 12.3.0 to build releases #27897
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
guix: use GCC 12.3.0 to build releases #27897
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code CoverageFor detailed information about the code coverage, see the test coverage report. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. ConflictsReviewers, this pull request conflicts with the following ones:
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. |
efef603 to
7ffe71a
Compare
|
Concept ACK. I'm having trouble finding where ppc64 became unsupported in guix though. There were lots of refactors and I'm guessing some wildcard change is maybe responsible? I'd like to understand why it was disabled just in case it was accidental. In that case, we'd want to upstream a fix I think? |
cbee1d7 depends: modernize clang flags (Cory Fields) 2a85857 ci: disable false-positive warnings for now (Cory Fields) Pull request description: This is a cleaner and simpler alternative to #25098. Inspired by [this conversation](#27737 (comment)). The diff is large but the change itself is quite small. Fixes builds with llvm >= 11 in guix by working around the problem. As a bonus, this is much cleaner and more maintainable than what we had before. See the updated comment for more info. At a high level: rather than playing tricks and trying to work around clang's default includes, disable them and re-add what we want. ACKs for top commit: fanquake: ACK cbee1d7 - tested Guix and the depends cross-compile. Would like to move this along, to unblock #27676, which itself might be a blocker for #27897. Note that macOS might seem somewhat in flux for the moment, but once we finish the migration to LLVM Clang + LLD, things will be must simpler, and ultimately more maintainable. TheCharlatan: ACK cbee1d7 Tree-SHA512: 5a8300be528f550e15ab23d869e77df7a62201c6d40c0384795a9eecee38118a676e0b79b2b76c5e597597181443caada54a01b75a544dbcde76da1deba8e3a4
7ffe71a to
83cecce
Compare
|
I think you forgot to bump the CI? diff --git a/ci/test/00_setup_env_win64.sh b/ci/test/00_setup_env_win64.sh
index 3adfbf6e4..e0671e734 100755
--- a/ci/test/00_setup_env_win64.sh
+++ b/ci/test/00_setup_env_win64.sh
@@ -7,7 +7,7 @@
export LC_ALL=C.UTF-8
export CONTAINER_NAME=ci_win64
-export CI_IMAGE_NAME_TAG=ubuntu:22.04 # Check that Jammy can cross-compile to win64
+export CI_IMAGE_NAME_TAG=debian:bookworm # Check that Bookworm (gcc 12, similar to guix) can cross-compile
export HOST=x86_64-w64-mingw32
export DPKG_ADD_ARCH="i386"
export PACKAGES="python3 nsis g++-mingw-w64-x86-64-posix wine-binfmt wine64 wine32 file"and the same for arm? Similar to commit 0999999 |
theuni
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good to me.
Mind adding a more verbose commit message for "guix: remove input labels"? I could use some help with the motivation for that one.
Concept ACK on this. |
FWIW, libtapi configuration step succeeds for the Guix master branch (94ac93042f09b4ba68b7b64ed1feeebd3dab1ea4). However, the further build step fails. |
83cecce to
b67617b
Compare
|
@theuni I will address your comments soon. Currently working on some additional changes so we can push the time-machine commit further along, and potentially take advantage of the now merged: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64100. I've opened one additional issue upstream: https://lists.gnu.org/archive/html/bug-guix/2023-07/msg00009.html. |
|
Sent some additional patches upstream, to update packages we use: |
|
(copying what I added to the PR description)
Not yet. We still need to minify a reproducer, which is also non-trivial. I will work on doing that, but also don't want it as a blocker to moving forward here. |
|
Guix build (x86_64) (matches aarch64): 6dcb27a8e89def2e9ab3de7a79b9923795353bbf5dcb29832820a8105f701f07 guix-build-10d56530e097/output/aarch64-linux-gnu/SHA256SUMS.part
bd8242c2ce7cf1e5f5b6ae76a6d5d79061919b86cb80860fcd0a38f9e65a5ea6 guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu-debug.tar.gz
d2f4525d5a65e76ec2f62697be2e5b2f4d52d584ab63ab708471f674977b8fea guix-build-10d56530e097/output/aarch64-linux-gnu/bitcoin-10d56530e097-aarch64-linux-gnu.tar.gz
8e922ca2ec17e3987ad92cc378fac1accad5fd1b1c9e2ecb68bdabf1b905e12b guix-build-10d56530e097/output/arm-linux-gnueabihf/SHA256SUMS.part
06ef9e7bc84f470509f97c4dfb7a23a3cde770eaff78f6b93faa94afc40454c2 guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf-debug.tar.gz
d2c2486a35b9935d68d71ef3cdcc4f58522887910a165868e441085337ba0639 guix-build-10d56530e097/output/arm-linux-gnueabihf/bitcoin-10d56530e097-arm-linux-gnueabihf.tar.gz
721f036529908cd406e3e1e0f6a2451b34e77c4cadb68e0fb8c711fad4853cd5 guix-build-10d56530e097/output/arm64-apple-darwin/SHA256SUMS.part
a777361b7bcc9fd3353a91e185d48508079ef5ec88494970d12eeaf9e8106c22 guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.tar.gz
8de7ba4927de09308e02b9c05b84d8cf75bf8e46e87a8330d72682e873e8fdfd guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin-unsigned.zip
6bd05be85a6e32c1a99949400bc390a84c7b7f79cf40facf4e1db7a99e354dba guix-build-10d56530e097/output/arm64-apple-darwin/bitcoin-10d56530e097-arm64-apple-darwin.tar.gz
a18b6aeabfb3b201b5b68305968505e3d10d50e1fd1f8e142da97d8878664c8a guix-build-10d56530e097/output/dist-archive/bitcoin-10d56530e097.tar.gz
cf0f43b1d9ac91d7993c7ee63316e938935ee6998d7c00409a7a1f8e71b59249 guix-build-10d56530e097/output/powerpc64-linux-gnu/SHA256SUMS.part
80beedf085d1a1bb15ced0a411f9d74668e7bbafce6f1701ebbcb1895634023b guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu-debug.tar.gz
d12eac8a15649fd343773738fb3893bba4a90ddce4a5ccd397ff24bd36dea7a8 guix-build-10d56530e097/output/powerpc64-linux-gnu/bitcoin-10d56530e097-powerpc64-linux-gnu.tar.gz
0ab804612d75915d84a89221167ce411483a5cbcba40b46663de0391fbe427a2 guix-build-10d56530e097/output/riscv64-linux-gnu/SHA256SUMS.part
7a980cfdf17b4f0ad51dd6fcc59a923e2d825352dc06dc51c8021ff43ceb3d32 guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu-debug.tar.gz
06aad03534b5986d1a091f0f04289c38197041342b5a398205feb7b5fa94a880 guix-build-10d56530e097/output/riscv64-linux-gnu/bitcoin-10d56530e097-riscv64-linux-gnu.tar.gz
c82ca396f11e6383f5d4a9c616fd070d642702841c477001f2577a0830c96a82 guix-build-10d56530e097/output/x86_64-apple-darwin/SHA256SUMS.part
835cc72a7582e8d049efeca7d074aa4ce73699dc7c9f0545a4b69cf8f72a3b01 guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.tar.gz
37af26f6761bd0a731c355b66d6f763f179142f6c6661c81e45bca8e5458fc50 guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin-unsigned.zip
b239b17dd90875baf50cb4426115a5b26f3c64fc817124ec157183c58bccaef1 guix-build-10d56530e097/output/x86_64-apple-darwin/bitcoin-10d56530e097-x86_64-apple-darwin.tar.gz
b6a114afbce9f51332feeda77e51360fce8c9e090dbdd51f5d7953f3b53024e9 guix-build-10d56530e097/output/x86_64-linux-gnu/SHA256SUMS.part
99a2d0f622a9b9e99e5c334ec97f0dfb60ae2d1e159a84ae3d764aff7f05c973 guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu-debug.tar.gz
eac4a6d47595f28dd92fa770ad361c649123fc01c2337f5160f82937ee3c1ced guix-build-10d56530e097/output/x86_64-linux-gnu/bitcoin-10d56530e097-x86_64-linux-gnu.tar.gz
9ce4d66d6d89efcb90d4cff27e0430267930484244a420254b0842eb2255c63d guix-build-10d56530e097/output/x86_64-w64-mingw32/SHA256SUMS.part
c3c0420b702965b2a4b7f9d5528f75ac067f3717df33c26d79d2c6a43e62271d guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-debug.zip
402938d010fed8140953425e77d6c0adf432bc0b6c3bc41b202fc3ab57dc3e78 guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-setup-unsigned.exe
98c9a31988b46554a696d30576590b7999a8957020bf8942caf0e499094794f7 guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64-unsigned.tar.gz
37360c7fd4fae718c581a76e820bf495ea4470d6938c02c7ff3561523bcca3ca guix-build-10d56530e097/output/x86_64-w64-mingw32/bitcoin-10d56530e097-win64.zip |
|
|
Concept ACK |
|
Guix builds (x86 & aarch64) |
sedited
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 10d5653
hebasto
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That option hasn't yet been released in any version of GCC (it will be in GCC 14). |
These are not being built by guix since bitcoin/bitcoin#27897
These are not being built by guix since bitcoin/bitcoin#27897
These are not being built by guix since bitcoin/bitcoin#27897
, bitcoin#28786, bitcoin#29078, bitcoin#27897, bitcoin#29651, bitcoin#29695, bitcoin#29673, bitcoin#29828, bitcoin#29846, bitcoin#30231, bitcoin#30438, partial bitcoin#30511 (guix backports: part 5) 91b7ef8 merge bitcoin#30438: build Linux GCC with --enable-cet (Kittywhiskers Van Gogh) cfc6cba partial bitcoin#30511: GCC 12 consolidation (Kittywhiskers Van Gogh) 06f5431 merge bitcoin#30231: bump time-machine to f0bb724211872cd6158fce6162e0b8c73efed126 (Kittywhiskers Van Gogh) 5b292ee merge bitcoin#29846: replace GCC unaligned VMOV patch with binutils patch (Kittywhiskers Van Gogh) 4d1f7dc merge bitcoin#29828: remove `gcc-toolchain static` from Windows build (Kittywhiskers Van Gogh) f321d3d merge bitcoin#29673: use GCC 11 in macOS build env (Kittywhiskers Van Gogh) d570e2d merge bitcoin#29695: build GCC with --enable-standard-branch-protection (Kittywhiskers Van Gogh) c965943 merge bitcoin#29651: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a (Kittywhiskers Van Gogh) 59a125a merge bitcoin#27897: use GCC 12.3.0 to build releases (Kittywhiskers Van Gogh) a701b06 merge bitcoin#29078: Bump guix time-machine to unlock riscv64 metal (Kittywhiskers Van Gogh) d4b10a3 merge bitcoin#28786: switch to 6.1 kernel headers over 5.15 (Kittywhiskers Van Gogh) c371870 merge bitcoin#28580: update time-machine (Kittywhiskers Van Gogh) d36c9b6 merge bitcoin#28759: update signapple to latest master (Kittywhiskers Van Gogh) 38c71d8 merge bitcoin#28370: remove GCC 10 workaround from NSIS (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * Dependent on #6382 * Dependency for #6384 ## Breaking Changes None expected ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 91b7ef8 Tree-SHA512: 0cfb436a430cf4b624a48a9928ecac9cd5c50e88e51ed04e7d1d0100968af8be1183364f035ac75153781a5e1616aa2f6fadabf0a1c03ec4b66dedea544b77ad
Summary: ``` Retain native GCC 10 toolchain for macOS, to prevent compile failures in native tools (this will be removed entirely when we tansition to LLD). Update the vmov-alignment patch, for changes in GCC 12. ``` Backport of [[bitcoin/bitcoin#27897 | core#27897]]. Depends on D17232. Test Plan: Run the guix builds. Reviewers: #bitcoin_abc, PiRK Reviewed By: #bitcoin_abc, PiRK Differential Revision: https://reviews.bitcoinabc.org/D17233
Summary: ``` Retain native GCC 10 toolchain for macOS, to prevent compile failures in native tools (this will be removed entirely when we tansition to LLD). Update the vmov-alignment patch, for changes in GCC 12. ``` Backport of [[bitcoin/bitcoin#27897 | core#27897]]. Depends on D17232. Test Plan: Run the guix builds. Reviewers: #bitcoin_abc, PiRK Reviewed By: #bitcoin_abc, PiRK Differential Revision: https://reviews.bitcoinabc.org/D17233
, bitcoin#28580, bitcoin#28786, bitcoin#29078, bitcoin#27897, bitcoin#29651, bitcoin#29695, bitcoin#29673, bitcoin#29828, bitcoin#29846, bitcoin#30231, bitcoin#30438, partial bitcoin#30511 (guix backports: part 5)" This reverts commit be97bfe, reversing changes made to f155ecf.
This reverts commit 10d5653 (bitcoin#27897)
Switch to using GCC
12.3.0to build release binaries.Temporarily disables the
powerpc64le-linux-gnutarget due to non-determinism issues when building acrossaarch64andx86_64. Trying to fix the non-determinism was going to require trying to selectively disable optimization flags, which is already not ideal (and didn't fix all issues), and the migration to GCC 12 as our release compiler is now the blocker for multiple other (c++20 and similar) changes, so leaving this blocked on thepowerpc64lebinaries does not seem like a good tradeoff.