From 74c17734cb34f543e478bc8dbb872000a7de47c2 Mon Sep 17 00:00:00 2001 From: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz> Date: Mon, 29 Sep 2025 07:42:18 +0200 Subject: [PATCH 1/3] Drop support for EOL macOS 13 --- .github/workflows/ci.yml | 10 +++++----- depends/hosts/darwin.mk | 2 +- doc/release-notes-empty-template.md | 2 +- share/qt/Info.plist.in | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a5cae564e4d..0b0a4289c28 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,7 +105,7 @@ jobs: name: ${{ matrix.job-name }} # Use any image to support the xcode-select below, but hardcode version to avoid silent upgrades (and breaks). # See: https://github.com/actions/runner-images#available-images. - runs-on: macos-14 + runs-on: macos-15 # When a contributor maintains a fork of the repo, any pull request they make # to their own fork, or to the main repository, will trigger two CI runs: @@ -123,10 +123,10 @@ jobs: include: - job-type: standard file-env: './ci/test/00_setup_env_mac_native.sh' - job-name: 'macOS 14 native, arm64, no depends, sqlite only, gui' + job-name: 'macOS native, no depends, sqlite only, gui' - job-type: fuzz file-env: './ci/test/00_setup_env_mac_native_fuzz.sh' - job-name: 'macOS 14 native, arm64, fuzz' + job-name: 'macOS native, fuzz' env: DANGER_RUN_CI_ON_HOST: 1 @@ -145,8 +145,8 @@ jobs: # Use the earliest Xcode supported by the version of macOS denoted in # doc/release-notes-empty-template.md and providing at least the # minimum clang version denoted in doc/dependencies.md. - # See: https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes - sudo xcode-select --switch /Applications/Xcode_15.0.app + # See: https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes + sudo xcode-select --switch /Applications/Xcode_16.0.app clang --version - name: Install Homebrew packages diff --git a/depends/hosts/darwin.mk b/depends/hosts/darwin.mk index 7ec2fd96caa..d33b681babf 100644 --- a/depends/hosts/darwin.mk +++ b/depends/hosts/darwin.mk @@ -1,4 +1,4 @@ -OSX_MIN_VERSION=13.0 +OSX_MIN_VERSION=14.0 OSX_SDK_VERSION=14.0 XCODE_VERSION=15.0 XCODE_BUILD_ID=15A240d diff --git a/doc/release-notes-empty-template.md b/doc/release-notes-empty-template.md index 0e8dc7704e7..7f419cbf420 100644 --- a/doc/release-notes-empty-template.md +++ b/doc/release-notes-empty-template.md @@ -36,7 +36,7 @@ Compatibility ============== Bitcoin Core is supported and tested on operating systems using the -Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin +Linux Kernel 3.17+, macOS 14+, and Windows 10+. Bitcoin Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use Bitcoin Core on unsupported systems. diff --git a/share/qt/Info.plist.in b/share/qt/Info.plist.in index 5ff736152f5..e33f37780b2 100644 --- a/share/qt/Info.plist.in +++ b/share/qt/Info.plist.in @@ -3,7 +3,7 @@ LSMinimumSystemVersion - 13 + 14 LSArchitecturePriority From 5647a55ee04ac9868331b26f4b131d78aac3b1a0 Mon Sep 17 00:00:00 2001 From: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz> Date: Mon, 29 Sep 2025 17:40:36 +0200 Subject: [PATCH 2/3] fuzz: Drop unused workaround after Apple-Clang bump --- src/test/fuzz/fuzz.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/fuzz/fuzz.cpp b/src/test/fuzz/fuzz.cpp index d4d82a623b4..ec5b6384a0c 100644 --- a/src/test/fuzz/fuzz.cpp +++ b/src/test/fuzz/fuzz.cpp @@ -75,7 +75,7 @@ auto& FuzzTargets() void FuzzFrameworkRegisterTarget(std::string_view name, TypeTestOneInput target, FuzzTargetOptions opts) { - const auto [it, ins]{FuzzTargets().try_emplace(name, FuzzTarget /* temporary can be dropped after Apple-Clang-16 ? */ {std::move(target), std::move(opts)})}; + const auto [it, ins]{FuzzTargets().try_emplace(name, std::move(target), std::move(opts))}; Assert(ins); } From 76a784c3b0fb9cb69491830523d251ed4870e5f1 Mon Sep 17 00:00:00 2001 From: fanquake Date: Tue, 23 Sep 2025 10:36:27 -0400 Subject: [PATCH 3/3] ci: add libcpp hardening flags to macOS fuzz job Follows up to https://github.com/bitcoin/bitcoin/pull/33425#issuecomment-3323149107. --- ci/test/00_setup_env_mac_native_fuzz.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/test/00_setup_env_mac_native_fuzz.sh b/ci/test/00_setup_env_mac_native_fuzz.sh index a8010c7aecd..ea074e47732 100755 --- a/ci/test/00_setup_env_mac_native_fuzz.sh +++ b/ci/test/00_setup_env_mac_native_fuzz.sh @@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8 export CONTAINER_NAME="ci_mac_native_fuzz" # macos does not use a container, but the env var is needed for logging export CMAKE_GENERATOR="Ninja" -export BITCOIN_CONFIG="-DBUILD_FOR_FUZZING=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000'" +export BITCOIN_CONFIG="-DBUILD_FOR_FUZZING=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000' -DAPPEND_CPPFLAGS='-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG'" export CI_OS_NAME="macos" export NO_DEPENDS=1 export OSX_SDK=""