aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2019-11-24 18:40:27 -0500
committerMarcoFalke <falke.marco@gmail.com>2019-11-24 18:42:54 -0500
commit746318179884055910df0d556fd9f79da18ce38d (patch)
treeba3171a7fb86c62f8e59746d00bbdb4ee0c63b8d
parent239d199667888e5d60309f15a38eed4d3afe56c4 (diff)
parent8f15a317602727d24f60d0bbf43f851b33df3228 (diff)
downloadbitcoin-746318179884055910df0d556fd9f79da18ce38d.tar.xz
Merge #17538: build: Bump minimum libc to 2.17 for release binaries
8f15a317602727d24f60d0bbf43f851b33df3228 doc: add glibc 2.17 requirement to release-notes (fanquake) 16a7be1663b02ddefa1e4f0309be49b725ffb388 build: Bump minimum versions in symbol checker (Wladimir J. van der Laan) b77d5ad59fb9f3f26d919ee6c33ae732382de504 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 8f15a317602727d24f60d0bbf43f851b33df3228 Tree-SHA512: a3cc92aa1c5de253b1531f4b854d6f5f4a15d614ba6290d9db293542a96994b55c4a8e33e03b601bae16eb65529630b4f94b48b010e0b66b7dc9ff0acf945107
-rwxr-xr-xcontrib/devtools/symbol-check.py36
-rw-r--r--doc/release-notes.md4
2 files changed, 22 insertions, 18 deletions
diff --git a/contrib/devtools/symbol-check.py b/contrib/devtools/symbol-check.py
index c224085c32..cb255c9426 100755
--- a/contrib/devtools/symbol-check.py
+++ b/contrib/devtools/symbol-check.py
@@ -4,8 +4,8 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
'''
A script to check that the (Linux) executables produced by gitian only contain
-allowed gcc, glibc and libstdc++ version symbols. This makes sure they are
-still compatible with the minimum supported Linux distribution versions.
+allowed gcc and glibc version symbols. This makes sure they are still compatible
+with the minimum supported Linux distribution versions.
Example usage:
@@ -16,30 +16,30 @@ import re
import sys
import os
-# Debian 6.0.9 (Squeeze) has:
+# Debian 8 (Jessie) EOL: 2020. https://wiki.debian.org/DebianReleases#Production_Releases
#
-# - g++ version 4.4.5 (https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=g%2B%2B)
-# - libc version 2.11.3 (https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=libc6)
-# - libstdc++ version 4.4.5 (https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=libstdc%2B%2B6)
+# - 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)
#
-# Ubuntu 10.04.4 (Lucid Lynx) has:
+# Ubuntu 16.04 (Xenial) EOL: 2024. https://wiki.ubuntu.com/Releases
#
-# - g++ version 4.4.3 (http://packages.ubuntu.com/search?keywords=g%2B%2B&searchon=names&suite=lucid&section=all)
-# - libc version 2.11.1 (http://packages.ubuntu.com/search?keywords=libc6&searchon=names&suite=lucid&section=all)
-# - libstdc++ version 4.4.3 (http://packages.ubuntu.com/search?suite=lucid&section=all&arch=any&keywords=libstdc%2B%2B&searchon=names)
+# - g++ version 5.3.1 (https://packages.ubuntu.com/search?keywords=g%2B%2B&searchon=names&suite=xenial&section=all)
+# - libc version 2.23.0 (https://packages.ubuntu.com/search?keywords=libc6&searchon=names&suite=xenial&section=all)
+#
+# CentOS 7 EOL: 2024. https://wiki.centos.org/FAQ/General
+#
+# - 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 (http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html) this corresponds to:
-# GCC 4.4.0: GCC_4.4.0
-# GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3
-# (glibc) GLIBC_2_11
+# 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
#
MAX_VERSIONS = {
-'GCC': (4,4,0),
-'CXXABI': (1,3,3),
-'GLIBCXX': (3,4,13),
-'GLIBC': (2,11),
+'GCC': (4,8,0),
+'GLIBC': (2,17),
'LIBATOMIC': (1,0)
}
# See here for a description of _IO_stdin_used:
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 88740ea1da..d6bd8e6ed4 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -68,6 +68,10 @@ Build System
- OpenSSL is no longer used by Bitcoin Core. The last usage of the library
was removed in #17265.
+- glibc 2.17 or greater is now required to run the release binaries. This
+retains compatibility with RHEL 7, CentOS 7, Debian 8 and Ubuntu 14.04 LTS.
+Further details can be found in #17538.
+
New RPCs
--------