devtools: Correctly extract symbol versions in symbol-check
Summary:
devtools: Fix verneed section parsing in pixie
I misunderstood the ELF specification for version symbols (verneed):
The vn_aux pointer is relative to the main verneed record, not the
start of the section.This caused many symbols to not be versioned properly in the return
value of elf.dyn_symbols. This was discovered in #21454.Fix it by correcting the offset computation.
devtools: Add xkb version to symbol-check
xkb versions symbols (using the prefix V), as this library is used by
bitcoin-qt, add it to the valid versions in symbol-check.py.
devtools: Integrate ARCH_MIN_GLIBC_VER table into MAX_VERSIONS in symbol-check.py
The (ancient) versions specified here were deceptive. Entries older than
MAX_VERSIONS['GLIBC'], which is 2.17, are ignored here. So reorganize
the code to avoid confusion for other people reading this code.
This is a backport of core#22244
Depends on D13962 and D13973
Test Plan:
gitian builds
run the guix build for x86_64 linux (which now shows errors in symbol check)
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D13970