Most supported operating systems ship with clang-16 (or later), so bump the minimum to that and allow new code to drop workarounds for previous clang bugs.
For reference:
- https://packages.debian.org/bookworm/clang-16
- https://packages.ubuntu.com/noble/clang (clang-18)
- CentOS-like 8/9 Stream: All Clang versions from 16 to 17
- FreeBSD 12/13: All Clang versions from 16 to 18
- OpenSuse Tumbleweed ships with https://software.opensuse.org/package/clang (
clang18
); No idea about OpenSuse Leap
On operating systems where the clang version is not shipped by default, the user would have to use GCC, or install clang in a different way. For example:
- https://packages.debian.org/bookworm/g++ (g++-12)
- https://packages.ubuntu.com/jammy/g++ (g++-11)
- https://apt.llvm.org/, or nix, or guix, or compile clang from source, …
Ubuntu 22.04 LTS does not ship with clang-16, so one of the above workarounds is needed there.
macOS 13 is unaffected, and the previous minimum requirement of Xcode15.0 remains, see also https://github.com/bitcoin/bitcoin/blame/b1ba1b178f501daa1afdd91f9efec34e5ec1e294/.github/workflows/ci.yml#L93. For macOS 11 (Big Sur) and 12 (Monterey) you need to install a more recent version of llvm, this remains unchanged as well, see https://github.com/bitcoin/bitcoin/blame/b1ba1b178f501daa1afdd91f9efec34e5ec1e294/doc/build-osx.md#L54.