mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-02 09:46:52 -05:00
build: require glibc 2.18+ for release builds
From what I can see the only platform this drops support for is CentOS 7. CentOS 7 reached the end of it's "full update" support at the end of 2020. It does receive maintenance updates until 2024, however I don't think supporting glibc 2.17 until 2024 is realistic. Note that anyone wanting to self-compile and target a glibc 2.17 runtime could build with --disable-threadlocal. glibc 2.18 was released in August 2013. https://sourceware.org/legacy-ml/libc-alpha/2013-08/msg00160.html
This commit is contained in:
parent
41e6909c07
commit
dbfca4a815
5 changed files with 19 additions and 29 deletions
|
@ -1044,9 +1044,6 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
|||
[AC_MSG_RESULT([no])]
|
||||
)
|
||||
|
||||
dnl thread_local is currently disabled when building with glibc back compat.
|
||||
dnl Our minimum supported glibc is 2.17, however support for thread_local
|
||||
dnl did not arrive in glibc until 2.18.
|
||||
if test "x$use_thread_local" = xyes || test "x$use_thread_local" = xauto; then
|
||||
TEMP_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$TEMP_LDFLAGS $PTHREAD_CFLAGS"
|
||||
|
|
|
@ -19,35 +19,31 @@ import lief #type:ignore
|
|||
# https://github.com/lief-project/LIEF/pull/562
|
||||
LIEF_ELF_ARCH_RISCV = lief.ELF.ARCH(243)
|
||||
|
||||
# Debian 8 (Jessie) EOL: 2020. https://wiki.debian.org/DebianReleases#Production_Releases
|
||||
# Debian 9 (Stretch) EOL: 2022. https://wiki.debian.org/DebianReleases#Production_Releases
|
||||
#
|
||||
# - g++ version 4.9.2 (https://packages.debian.org/search?suite=jessie&arch=any&searchon=names&keywords=g%2B%2B)
|
||||
# - libc version 2.19 (https://packages.debian.org/search?suite=jessie&arch=any&searchon=names&keywords=libc6)
|
||||
# - g++ version 6.3.0 (https://packages.debian.org/search?suite=stretch&arch=any&searchon=names&keywords=g%2B%2B)
|
||||
# - libc version 2.24 (https://packages.debian.org/search?suite=stretch&arch=any&searchon=names&keywords=libc6)
|
||||
#
|
||||
# Ubuntu 16.04 (Xenial) EOL: 2024. https://wiki.ubuntu.com/Releases
|
||||
# Ubuntu 16.04 (Xenial) EOL: 2026. https://wiki.ubuntu.com/Releases
|
||||
#
|
||||
# - g++ version 5.3.1 (https://packages.ubuntu.com/search?keywords=g%2B%2B&searchon=names&suite=xenial§ion=all)
|
||||
# - libc version 2.23.0 (https://packages.ubuntu.com/search?keywords=libc6&searchon=names&suite=xenial§ion=all)
|
||||
# - g++ version 5.3.1
|
||||
# - libc version 2.23
|
||||
#
|
||||
# CentOS 7 EOL: 2024. https://wiki.centos.org/FAQ/General
|
||||
# CentOS Stream 8 EOL: 2024. https://wiki.centos.org/About/Product
|
||||
#
|
||||
# - g++ version 4.8.5 (http://mirror.centos.org/centos/7/os/x86_64/Packages/)
|
||||
# - libc version 2.17 (http://mirror.centos.org/centos/7/os/x86_64/Packages/)
|
||||
#
|
||||
# Taking the minimum of these as our target.
|
||||
#
|
||||
# According to GNU ABI document (https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html) this corresponds to:
|
||||
# GCC 4.8.5: GCC_4.8.0
|
||||
# (glibc) GLIBC_2_17
|
||||
# - g++ version 8.5.0 (http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/)
|
||||
# - libc version 2.28 (http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/)
|
||||
#
|
||||
# See https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html for more info.
|
||||
|
||||
MAX_VERSIONS = {
|
||||
'GCC': (4,8,0),
|
||||
'GLIBC': {
|
||||
lief.ELF.ARCH.i386: (2,17),
|
||||
lief.ELF.ARCH.x86_64: (2,17),
|
||||
lief.ELF.ARCH.ARM: (2,17),
|
||||
lief.ELF.ARCH.AARCH64:(2,17),
|
||||
lief.ELF.ARCH.PPC64: (2,17),
|
||||
lief.ELF.ARCH.i386: (2,18),
|
||||
lief.ELF.ARCH.x86_64: (2,18),
|
||||
lief.ELF.ARCH.ARM: (2,18),
|
||||
lief.ELF.ARCH.AARCH64:(2,18),
|
||||
lief.ELF.ARCH.PPC64: (2,18),
|
||||
LIEF_ELF_ARCH_RISCV: (2,27),
|
||||
},
|
||||
'LIBATOMIC': (1,0),
|
||||
|
|
|
@ -44,7 +44,7 @@ class TestSymbolChecks(unittest.TestCase):
|
|||
self.skipTest("test not available for RISC-V")
|
||||
|
||||
# nextup was introduced in GLIBC 2.24, so is newer than our supported
|
||||
# glibc (2.17), and available in our release build environment (2.24).
|
||||
# glibc (2.18), and available in our release build environment (2.24).
|
||||
with open(source, 'w', encoding="utf8") as f:
|
||||
f.write('''
|
||||
#define _GNU_SOURCE
|
||||
|
|
|
@ -238,9 +238,6 @@ mkdir -p "$OUTDIR"
|
|||
|
||||
# CONFIGFLAGS
|
||||
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests --disable-fuzz-binary"
|
||||
case "$HOST" in
|
||||
*linux*) CONFIGFLAGS+=" --disable-threadlocal" ;;
|
||||
esac
|
||||
|
||||
# CFLAGS
|
||||
HOST_CFLAGS="-O2 -g"
|
||||
|
@ -263,7 +260,7 @@ case "$HOST" in
|
|||
*mingw*) HOST_LDFLAGS="-Wl,--no-insert-timestamp" ;;
|
||||
esac
|
||||
|
||||
# Using --no-tls-get-addr-optimize retains compatibility with glibc 2.17, by
|
||||
# Using --no-tls-get-addr-optimize retains compatibility with glibc 2.18, by
|
||||
# avoiding a PowerPC64 optimisation available in glibc 2.22 and later.
|
||||
# https://sourceware.org/binutils/docs-2.35/ld/PowerPC64-ELF64.html
|
||||
case "$HOST" in
|
||||
|
|
|
@ -12,7 +12,7 @@ These are the dependencies currently used by Bitcoin Core. You can find instruct
|
|||
| fontconfig | [2.12.1](https://www.freedesktop.org/software/fontconfig/release/) | | No | Yes | |
|
||||
| FreeType | [2.7.1](https://download.savannah.gnu.org/releases/freetype) | | No | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) (Android only) |
|
||||
| GCC | | [8.1](https://gcc.gnu.org/) (C++17 & std::filesystem support) | | | |
|
||||
| glibc | | [2.17](https://www.gnu.org/software/libc/) | | | | |
|
||||
| glibc | | [2.18](https://www.gnu.org/software/libc/) | | | | |
|
||||
| HarfBuzz-NG | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk) |
|
||||
| libevent | [2.1.12-stable](https://github.com/libevent/libevent/releases) | [2.0.21](https://github.com/bitcoin/bitcoin/pull/18676) | No | | |
|
||||
| libnatpmp | git commit [4536032...](https://github.com/miniupnp/libnatpmp/tree/4536032ae32268a45c073a4d5e91bbab4534773a) | | No | | |
|
||||
|
|
Loading…
Add table
Reference in a new issue