mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-20 14:05:23 +01:00
Merge bitcoin/bitcoin#30263: build: Bump clang minimum supported version to 16
fa8f53273c
refactor: Remove no longer needed clang-15 workaround for std::span (MarcoFalke)9999dbc1bd
fuzz: Clarify Apple-Clang-16 workaround (MarcoFalke)fa7462c67a
build: Bump clang minimum supported version to 16 (MarcoFalke) Pull request description: 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 alsob1ba1b178f/.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, seeb1ba1b178f/doc/build-osx.md (L54)
. ACKs for top commit: hebasto: ACKfa8f53273c
, I have reviewed the code and it looks OK. TheCharlatan: Re-ACKfa8f53273c
stickies-v: ACKfa8f53273c
Tree-SHA512: 18b79f88301a63bb5e367d2f52fffccd5fb84409061800158e51051667f6581a4cd71d4859d4cfa6d23e47e92963ab637e5ad87e3170ed23b5bebfbe99e759e2
This commit is contained in:
commit
1c11089c7f
5 changed files with 9 additions and 9 deletions
|
@ -7,9 +7,9 @@
|
|||
export LC_ALL=C.UTF-8
|
||||
|
||||
export CONTAINER_NAME=ci_native_nowallet_libbitcoinkernel
|
||||
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:22.04"
|
||||
# Use minimum supported python3.9 (or best-effort 3.10) and clang-15, see doc/dependencies.md
|
||||
export PACKAGES="python3-zmq clang-15 llvm-15 libc++abi-15-dev libc++-15-dev"
|
||||
export DEP_OPTS="NO_WALLET=1 CC=clang-15 CXX='clang++-15 -stdlib=libc++'"
|
||||
export CI_IMAGE_NAME_TAG="docker.io/debian:bullseye"
|
||||
# Use minimum supported python3.9 and clang-16, see doc/dependencies.md
|
||||
export PACKAGES="python3-zmq clang-16 llvm-16 libc++abi-16-dev libc++-16-dev"
|
||||
export DEP_OPTS="NO_WALLET=1 CC=clang-16 CXX='clang++-16 -stdlib=libc++'"
|
||||
export GOAL="install"
|
||||
export BITCOIN_CONFIG="--enable-reduce-exports --enable-experimental-util-chainstate --with-experimental-kernel-lib --enable-shared"
|
||||
|
|
|
@ -8,7 +8,7 @@ You can find installation instructions in the `build-*.md` file for your platfor
|
|||
| --- | --- |
|
||||
| [Autoconf](https://www.gnu.org/software/autoconf/) | [2.69](https://github.com/bitcoin/bitcoin/pull/17769) |
|
||||
| [Automake](https://www.gnu.org/software/automake/) | [1.13](https://github.com/bitcoin/bitcoin/pull/18290) |
|
||||
| [Clang](https://clang.llvm.org) | [15.0](https://github.com/bitcoin/bitcoin/pull/29165) |
|
||||
| [Clang](https://clang.llvm.org) | [16.0](https://github.com/bitcoin/bitcoin/pull/30263) |
|
||||
| [GCC](https://gcc.gnu.org) | [11.1](https://github.com/bitcoin/bitcoin/pull/29091) |
|
||||
| [Python](https://www.python.org) (scripts, tests) | [3.9](https://github.com/bitcoin/bitcoin/pull/28211) |
|
||||
| [systemtap](https://sourceware.org/systemtap/) ([tracing](tracing.md))| N/A |
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Build
|
||||
-----
|
||||
|
||||
GCC 11.1 or later, or Clang 15+ or later,
|
||||
GCC 11.1 or later, or Clang 16.0 or later,
|
||||
are now required to compile Bitcoin Core.
|
||||
|
|
|
@ -131,7 +131,7 @@ public:
|
|||
*/
|
||||
void WriteReply(int nStatus, std::string_view reply = "")
|
||||
{
|
||||
WriteReply(nStatus, std::as_bytes(std::span{reply.data(), reply.size()}));
|
||||
WriteReply(nStatus, std::as_bytes(std::span{reply}));
|
||||
}
|
||||
void WriteReply(int nStatus, std::span<const std::byte> reply);
|
||||
};
|
||||
|
|
|
@ -73,8 +73,8 @@ 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 clang-16 */ {std::move(target), std::move(opts)})};
|
||||
Assert(it_ins.second);
|
||||
const auto [it, ins]{FuzzTargets().try_emplace(name, FuzzTarget /* temporary can be dropped after Apple-Clang-16 ? */ {std::move(target), std::move(opts)})};
|
||||
Assert(ins);
|
||||
}
|
||||
|
||||
static std::string_view g_fuzz_target;
|
||||
|
|
Loading…
Add table
Reference in a new issue