aboutsummaryrefslogtreecommitdiff
path: root/contrib/devtools/symbol-check.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/devtools/symbol-check.py')
-rwxr-xr-xcontrib/devtools/symbol-check.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/contrib/devtools/symbol-check.py b/contrib/devtools/symbol-check.py
index 7a5a42c5d2..56e4313d78 100755
--- a/contrib/devtools/symbol-check.py
+++ b/contrib/devtools/symbol-check.py
@@ -41,8 +41,16 @@ import pixie
#
MAX_VERSIONS = {
'GCC': (4,8,0),
-'GLIBC': (2,17),
-'LIBATOMIC': (1,0)
+'GLIBC': {
+ pixie.EM_386: (2,17),
+ pixie.EM_X86_64: (2,17),
+ pixie.EM_ARM: (2,17),
+ pixie.EM_AARCH64:(2,17),
+ pixie.EM_PPC64: (2,17),
+ pixie.EM_RISCV: (2,27),
+},
+'LIBATOMIC': (1,0),
+'V': (0,5,0), # xkb (bitcoin-qt only)
}
# See here for a description of _IO_stdin_used:
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634261#109
@@ -78,14 +86,6 @@ ELF_ALLOWED_LIBRARIES = {
'libfreetype.so.6', # font parsing
'libdl.so.2' # programming interface to dynamic linker
}
-ARCH_MIN_GLIBC_VER = {
-pixie.EM_386: (2,1),
-pixie.EM_X86_64: (2,2,5),
-pixie.EM_ARM: (2,4),
-pixie.EM_AARCH64:(2,17),
-pixie.EM_PPC64: (2,17),
-pixie.EM_RISCV: (2,27)
-}
MACHO_ALLOWED_LIBRARIES = {
# bitcoind and bitcoin-qt
@@ -161,7 +161,10 @@ def check_version(max_versions, version, arch) -> bool:
ver = tuple([int(x) for x in ver.split('.')])
if not lib in max_versions:
return False
- return ver <= max_versions[lib] or lib == 'GLIBC' and ver <= ARCH_MIN_GLIBC_VER[arch]
+ if isinstance(max_versions[lib], tuple):
+ return ver <= max_versions[lib]
+ else:
+ return ver <= max_versions[lib][arch]
def check_imported_symbols(filename) -> bool:
elf = pixie.load(filename)