Skip to content
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

build: Bump g++ minimum supported version to 11 #29091

Merged
merged 2 commits into from Mar 18, 2024

Conversation

maflcko
Copy link
Member

@maflcko maflcko commented Dec 15, 2023

This drops support for vanilla Ubuntu Focal 20.04 and Debian (Oldstable) Bullseye, compiling from source. Users on those operating systems would have to stick with a pre-compiled release, a previous release branch of Bitcoin Core, upgrade their system, compile their own compiler, or use a non-vanilla PPA or package manager.

Otherwise, g++-11 is offered by common distributions:

@DrahtBot
Copy link
Contributor

DrahtBot commented Dec 15, 2023

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage

For detailed information about the code coverage, see the test coverage report.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK TheCharlatan, fanquake

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:

  • #29165 (build: Bump clang minimum supported version to 15 by maflcko)
  • #29077 ([WIP, DO NOT MERGE!!11111!!!!!] build: Require libc++-16 or later by maflcko)
  • #28687 (C++20 std::views::reverse by stickies-v)
  • #25972 (build: no-longer disable WARN_CXXFLAGS when CXXFLAGS is set 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.

@fanquake
Copy link
Member

Release compiler is now GC 12.x, so this should be possible.

@maflcko maflcko changed the title [28.x] build: Bump g++ minimum supported version to 11 build: Bump g++ minimum supported version to 11 Mar 14, 2024
@maflcko maflcko removed this from the 28.0 milestone Mar 14, 2024
@maflcko maflcko marked this pull request as ready for review March 14, 2024 13:22
@fanquake
Copy link
Member

This drops support for vanilla Ubuntu Focal 20.04 and Debian (Oldstable) Bullseye.

Just noting that this will only be support for vanilla compilation, our 28.x release binaries will continue to run on these platforms.

Can we also drop this

// - GCC 11.1: 1dfd95f0a0ca1d9e6cbc00e6cbfd1fa20a98f312
if the minimum will be GCC 11.1.

@maflcko
Copy link
Member Author

maflcko commented Mar 14, 2024

Thanks, edited OP and removed now unused code.

Copy link
Contributor

@TheCharlatan TheCharlatan left a comment

Choose a reason for hiding this comment

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

ACK fa5844f

Copy link
Member

@fanquake fanquake left a comment

Choose a reason for hiding this comment

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

ACK fa5844f

@fanquake fanquake merged commit 7af95af into bitcoin:master Mar 18, 2024
16 checks passed
@maflcko maflcko deleted the 2312-g++-11- branch March 18, 2024 14:58
Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

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

Post-merge ACK fa5844f. Glad to see that the Windows-specific workaround is gone.

hebasto added a commit to hebasto/bitcoin that referenced this pull request Mar 23, 2024
a6a746e fixup! ci: Test CMake edge cases (Hennadii Stepanov)
d267c2c [FIXUP] cmake: Drop deprecated TestBigEndian module (Hennadii Stepanov)
b6cb4bb fixup! cmake: Check system symbols (Hennadii Stepanov)
4d67f35 fixup! cmake: Add `Maintenance` module (Hennadii Stepanov)
ae5bd32 fixup! cmake: Add cross-compiling support (Hennadii Stepanov)
4b0d7f5 fixup! build: Generate `share/toolchain.cmake` in depends (Hennadii Stepanov)
c7abb8f fixup! cmake: Add root `CMakeLists.txt` file (Hennadii Stepanov)

Pull request description:

  Considering the time when the new CMake-based build system will be available for users and bitcoin#29091, it seems reasonable to drop support for CMake versions older than 3.22.

  For CMake version availability, please refer to https://repology.org/project/cmake/versions.

  If an OS has no supported CMake in its system/default package manager, the user is still able to download it from https://cmake.org/download//

  Please refer to commit messages for detailed explanations of code changes.

ACKs for top commit:
  pablomartin4btc:
    tACK a6a746e
  vasild:
    ACK a6a746e

Tree-SHA512: ad2e2a31fc65f9459d38b5f226281820fb6e4bb044ed70413157fa339303c511d4ea70a3a21352cc6a200cba057e394c1ba92f8a8f7faeec2955707e95461d9d
fanquake added a commit that referenced this pull request Apr 4, 2024
73d9230 guix: use GCC 11 for macOS builds (fanquake)

Pull request description:

  Note that this is just the native compiler, which is used to build the toolchain we use to build the actual binaries.

  Partially motivated by #29091, where it could now be a bit confusing if we are explicitly using GCC 10 in our release toolchain, when our minimum required is 11 (this can't be bumped to 12 due to build issues with native tools).

  At the same time, remove `gcc-toolchain "static"` from the macOS build env.

ACKs for top commit:
  hebasto:
    ACK 73d9230.

Tree-SHA512: 31392290b327cc0e19498cf053b7c9eb19e70295933d650b29b29589356ad455d35b6addcdaae702a9635513c07070fb17d61bcb48445d3cb1a9d4a93aa6ddf3
hebasto added a commit to hebasto/bitcoin that referenced this pull request Apr 12, 2024
Mirrors minimum g++-11 requirements from bitcoin#29091.

1. Update gcc version in the "ubuntu-jammy-native" job.

2. Switch the "cross-build" task to the debian::bookworm image, which
effectively bumps `x86_64-w64-mingw32-g++-posix` version to 12.2
hebasto added a commit to hebasto/bitcoin that referenced this pull request Apr 16, 2024
475cf6d ci: Test CMake edge cases (Hennadii Stepanov)

Pull request description:

  This PR follows the minimum g++-11 requirements from bitcoin#29091:

  1. Update gcc version in the "ubuntu-jammy-native" job.

  2. Switch the "cross-build" task to the debian::bookworm image, which effectively bumps `x86_64-w64-mingw32-g++-posix` version to 12.2.

  This PR should be merged before the next sync/rebase cycle, which is about to happen.

ACKs for top commit:
  m3dwards:
    utACK 475cf6d
  pablomartin4btc:
    cr ACK 475cf6d

Tree-SHA512: 9413a415e0f13754a04ba97ff5d8da2ae5f00385928ff02b07a564dafe48aa397fbd9299f4fa79983997aed00a95039ee5cdc441cf49baa37e40a27e70b368db
fanquake added a commit that referenced this pull request May 21, 2024
85e480a doc: Update NetBSD Build Guide (Hennadii Stepanov)

Pull request description:

  This PR updates the NetBSD Build Guide to reflect:
  - the recent NetBSD Release
  - GCC minimum supported version update (#28348 and #29091)
  - Python minimum supported version update (#28211)

  Also a smaller package set has been suggested:
  - `boost-headers` instead of the full `boost`
  - `qt5-qtbase qt5-qttools` instead of the full `qt5` (similar to #29932 and #29947).

ACKs for top commit:
  maflcko:
    utACK 85e480a

Tree-SHA512: 0848b6f169a00f2da78eea452fd116193aece853680f4e615ba1df654246ec2a9d1600a4cfb238eb9305b72bbe4b2873519bf1e2987eaaf48aba900c64e85a48
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.

None yet

5 participants