HomePhabricator

devtools: Correctly extract symbol versions in symbol-check

Description

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

Details

Provenance
W. J. van der Laan <laanwj@protonmail.com>Authored on Jun 14 2021, 18:24
PiRKCommitted on Jun 3 2023, 08:24
PiRKPushed on Jun 3 2023, 08:24
Reviewer
Restricted Project
Differential Revision
D13970: devtools: Correctly extract symbol versions in symbol-check
Parents
rABC3c1ceb86c63c: bump glibc to 2.28
Branches
Unknown
Tags
Unknown