-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
backport: merge bitcoin#21089, #27670, #24031, #26470, #27296, #27179, #27813, #27811, #28069, #28294, #28324, #28328, #29987 (guix backports: part 4) #6382
Conversation
Expected hashes for 45f3b34
|
Guix Automation has failed due to the HEAD commit not being signed by an authorized core-team member. Please rebase and sign or push a new empty signed commit to allow Guix build to happen. |
Expected hashes for 6536c79
|
Guix Automation has failed due to the HEAD commit not being signed by an authorized core-team member. Please rebase and sign or push a new empty signed commit to allow Guix build to happen. |
Expected hashes for c960aaa
|
Guix Automation has began to build this PR tagged as v22.0.0-devpr6382.c960aaa8. A new comment will be made when the image is pushed. |
Guix Automation has completed; a release should be present here: https://github.com/dashpay/dash-dev-branches/releases/tag/v22.0.0-devpr6382.c960aaa8. The image should be on dockerhub soon. |
Guix CI is broken, pls try applying 056b91d (my results https://github.com/UdjinM6/dash/actions/runs/11699788621) |
continuation of 9c8f5f7 from dash#5237
Should help upcoming commits render their diffs correctly
…ion from upstream
reverts: - 8535830 We're going to be updating to glibc 2.31 in the next commit
Expected hashes for 1edd121
|
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.
LGTM, hashes match
utACK 1edd121
@@ -74,7 +74,7 @@ mkdir -p "$VERSION_BASE" | |||
################ | |||
|
|||
# Default to building for all supported HOSTs (overridable by environment) | |||
export HOSTS="${HOSTS:-x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu | |||
export HOSTS="${HOSTS:-x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu powerpc64-linux-gnu powerpc64le-linux-gnu |
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.
sooo maybe I'm architecture-ist, but I don't really want to support power... I don't think there are really any production level consumer devices that run on power, besides maybe really old MacBooks. And this will significantly increase space and time needed for guix builds... I'm okay with being ABLE to build guix for power, but I don't think we should ship, test, or support it. Open to being convinced...
(Unrelated, but I also would want to drop 32 bit arm linux I think... Very unlikely many people actually run on arm32 linux imo)
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.
Default to building for all supported HOSTs (overridable by environment)
we can simply just adjust our build scripts (HOSTS="whatever archs we want" /contrib/guix/guix-build
) 🤷♂️
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.
I think I would prefer that guix-build only builds the HOSTS we ship by default.
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.
Well, yeah, you could do smth like that I guess to avoid accidental unnecessary builds. Let's maybe do it in a separate PR though?
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.
I don't mind modifying guix-start
to exclude PowerPC, we can even go so far as building only on platforms we actively support (dropping 32-bit ARM and maybe, RISC-V), because it's our solution and won't conflict with upstream but I think that should be a separate PR.
, 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
…pdate `guix-start` and `guix-check` to work correctly outside of containers c5d482e chore: suppress `git config` output (UdjinM6) 8ce9bfe chore: tweak error message (UdjinM6) f4d879a guix: more sanity checks for `WORKSPACE_PATH` (UdjinM6) 07f056a guix: Let `XCODE_SOURCE` be specified via env (UdjinM6) 74489dc chore: Log when preparing macOS SDK or adding `safe.directory` option (UdjinM6) 3ac5739 guix: "Invert" `guix-start`/`guix-check` cmd-line argument behaviour, defaults to `pwd` (UdjinM6) 187a4f1 guix: Avoid adding duplicate `safe.directory` option (UdjinM6) 87c9786 guix: `guix-start` should respect `SDK_PATH` (UdjinM6) ee5f62b guix: build only supported targets using Guix container (Kittywhiskers Van Gogh) Pull request description: ## Issue being fixed or feature implemented #6382 (comment) #6388 (comment) alternative to #6388 ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: ACK c5d482e Tree-SHA512: c0271f243f5912f55276fcb371a135f443f23cc1f29480f303ea77deeadb6fd7d3d97e07e6a1fa323a2b2bad1d65aa6298da33978832eb68a0a6303db3e0063c
Motivation
In preparation for migrating to C++20 and bumping our minimum required compiler to ensure that we have access to greater portions of the C++20 spec, this pull request first of two pull requests aiming to upgrade our Guix setup to use GCC 12 (and GCC 11 for the macOS toolchain).
Upgrades to the Clang toolchain for macOS and moving to GCC 12 for the macOS toolchain will be addressed in a separate pull request as the latter requires bitcoin#21778, which is well outside the scope of this PR.
Additional Notes
Dependency for backport: merge bitcoin#28370, #28759, #28580, #28786, #29078, #27897, #29651, #29695, #29673, #29828, #29846, #30231, #30438, partial bitcoin#30511 (guix backports: part 5) #6383
Newer versions of GCC will not behave as expected with
test-security-check.py
as the stack protector (listed asCanary
in the test) now behaves as expected and no longer fails. This causes an error when running it as the test expects failure (see below). This isn't an issue upstream as they backported bitcoin#29987, which gets rid of those tests (source).Therefore, we have backported that pull request as well.
Build failure:
bionic
) (i.e. our Guix binaries won't run on these distros anymore, users running those distros will have to compile it themselves).This shouldn't be a problem as full support for RHEL 8 ended May 31, 2024 (source) and standard support for
bionic
ended April 2023 (source).Dash Core will still work on Ubuntu 20.04 LTS (
focal
) as it ships with glibc 2.31 (source)Breaking Changes
None expected
Checklist: