Skip to content

Commit 7463181

Browse files
author
MarcoFalke
committed
Merge #17538: build: Bump minimum libc to 2.17 for release binaries
8f15a31 doc: add glibc 2.17 requirement to release-notes (fanquake) 16a7be1 build: Bump minimum versions in symbol checker (Wladimir J. van der Laan) b77d5ad build: Disallow dynamic linking against c++ library (Wladimir J. van der Laan) Pull request description: Closes: #17525. Taken over from #17531. Debian 8 (Jessie) has: - g++ version 4.9.2 - libc version 2.19 CentOS 7 has: - g++ version 4.8.5 - libc version 2.17 Ubuntu 16.04.4 (Xenial, oldest supported Ubuntu) has: - g++ version 5.3.1 - libc version 2.23.0 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 This also contains a (long needed) commit to disallow dynamic linking to stdc++, as our releases statically link against that. ACKs for top commit: laanwj: re-ACK 8f15a31 Tree-SHA512: a3cc92aa1c5de253b1531f4b854d6f5f4a15d614ba6290d9db293542a96994b55c4a8e33e03b601bae16eb65529630b4f94b48b010e0b66b7dc9ff0acf945107
2 parents 239d199 + 8f15a31 commit 7463181

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

contrib/devtools/symbol-check.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
55
'''
66
A script to check that the (Linux) executables produced by gitian only contain
7-
allowed gcc, glibc and libstdc++ version symbols. This makes sure they are
8-
still compatible with the minimum supported Linux distribution versions.
7+
allowed gcc and glibc version symbols. This makes sure they are still compatible
8+
with the minimum supported Linux distribution versions.
99
1010
Example usage:
1111
@@ -16,30 +16,30 @@
1616
import sys
1717
import os
1818

19-
# Debian 6.0.9 (Squeeze) has:
19+
# Debian 8 (Jessie) EOL: 2020. https://wiki.debian.org/DebianReleases#Production_Releases
2020
#
21-
# - g++ version 4.4.5 (https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=g%2B%2B)
22-
# - libc version 2.11.3 (https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=libc6)
23-
# - libstdc++ version 4.4.5 (https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=libstdc%2B%2B6)
21+
# - g++ version 4.9.2 (https://packages.debian.org/search?suite=jessie&arch=any&searchon=names&keywords=g%2B%2B)
22+
# - libc version 2.19 (https://packages.debian.org/search?suite=jessie&arch=any&searchon=names&keywords=libc6)
2423
#
25-
# Ubuntu 10.04.4 (Lucid Lynx) has:
24+
# Ubuntu 16.04 (Xenial) EOL: 2024. https://wiki.ubuntu.com/Releases
2625
#
27-
# - g++ version 4.4.3 (http://packages.ubuntu.com/search?keywords=g%2B%2B&searchon=names&suite=lucid&section=all)
28-
# - libc version 2.11.1 (http://packages.ubuntu.com/search?keywords=libc6&searchon=names&suite=lucid&section=all)
29-
# - libstdc++ version 4.4.3 (http://packages.ubuntu.com/search?suite=lucid&section=all&arch=any&keywords=libstdc%2B%2B&searchon=names)
26+
# - g++ version 5.3.1 (https://packages.ubuntu.com/search?keywords=g%2B%2B&searchon=names&suite=xenial&section=all)
27+
# - libc version 2.23.0 (https://packages.ubuntu.com/search?keywords=libc6&searchon=names&suite=xenial&section=all)
28+
#
29+
# CentOS 7 EOL: 2024. https://wiki.centos.org/FAQ/General
30+
#
31+
# - g++ version 4.8.5 (http://mirror.centos.org/centos/7/os/x86_64/Packages/)
32+
# - libc version 2.17 (http://mirror.centos.org/centos/7/os/x86_64/Packages/)
3033
#
3134
# Taking the minimum of these as our target.
3235
#
33-
# According to GNU ABI document (http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html) this corresponds to:
34-
# GCC 4.4.0: GCC_4.4.0
35-
# GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3
36-
# (glibc) GLIBC_2_11
36+
# According to GNU ABI document (https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html) this corresponds to:
37+
# GCC 4.8.5: GCC_4.8.0
38+
# (glibc) GLIBC_2_17
3739
#
3840
MAX_VERSIONS = {
39-
'GCC': (4,4,0),
40-
'CXXABI': (1,3,3),
41-
'GLIBCXX': (3,4,13),
42-
'GLIBC': (2,11),
41+
'GCC': (4,8,0),
42+
'GLIBC': (2,17),
4343
'LIBATOMIC': (1,0)
4444
}
4545
# See here for a description of _IO_stdin_used:

doc/release-notes.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ Build System
6868
- OpenSSL is no longer used by Bitcoin Core. The last usage of the library
6969
was removed in #17265.
7070

71+
- glibc 2.17 or greater is now required to run the release binaries. This
72+
retains compatibility with RHEL 7, CentOS 7, Debian 8 and Ubuntu 14.04 LTS.
73+
Further details can be found in #17538.
74+
7175
New RPCs
7276
--------
7377

0 commit comments

Comments
 (0)