diff --git a/contrib/devtools/pixie.py b/contrib/devtools/pixie.py --- a/contrib/devtools/pixie.py +++ b/contrib/devtools/pixie.py @@ -348,7 +348,7 @@ result = {} while True: verneed = Verneed(data, ofs, eh) - aofs = verneed.vn_aux + aofs = ofs + verneed.vn_aux while True: vernaux = Vernaux(data, aofs, eh, strings) result[vernaux.vna_other] = vernaux.name diff --git a/contrib/devtools/symbol-check.py b/contrib/devtools/symbol-check.py --- a/contrib/devtools/symbol-check.py +++ b/contrib/devtools/symbol-check.py @@ -34,7 +34,17 @@ # - 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": (8, 3, 0), "GLIBC": (2, 27), "LIBATOMIC": (1, 0)} +MAX_VERSIONS = { + "GCC": (8, 3, 0), + "GLIBC": { + pixie.EM_386: (2, 28), + pixie.EM_X86_64: (2, 28), + pixie.EM_ARM: (2, 28), + pixie.EM_AARCH64: (2, 28), + }, + "LIBATOMIC": (1, 0), + "V": (0, 5, 0), +} # See here for a description of _IO_stdin_used: # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634261#109 @@ -127,13 +137,6 @@ "libxcb-xkb.so.1", } -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), -} - MACHO_ALLOWED_LIBRARIES = { # bitcoind and bitcoin-qt "libc++.1.dylib", # C++ Standard Library @@ -221,9 +224,10 @@ ver = tuple([int(x) for x in ver.split(".")]) if lib not 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: