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.
- xkb versions symbols (using the prefix
V
), as this library is used by bitcoin-qt, add it to the valid versions insymbol-check.py
This unfortunately brings to light some symbols that have been introduced since and weren’t caught (from a gitian compile of master):
0bitcoin-cli: symbol getrandom from unsupported version GLIBC_2.25
1bitcoin-cli: failed IMPORTED_SYMBOLS
2bitcoind: symbol getrandom from unsupported version GLIBC_2.25
3bitcoind: symbol log from unsupported version GLIBC_2.29
4bitcoind: symbol fcntl64 from unsupported version GLIBC_2.28
5bitcoind: symbol pow from unsupported version GLIBC_2.29
6bitcoind: symbol exp from unsupported version GLIBC_2.29
7bitcoind: failed IMPORTED_SYMBOLS
8bitcoin-qt: symbol exp from unsupported version GLIBC_2.29
9bitcoin-qt: symbol fcntl64 from unsupported version GLIBC_2.28
10bitcoin-qt: symbol log from unsupported version GLIBC_2.29
11bitcoin-qt: symbol pow from unsupported version GLIBC_2.29
12bitcoin-qt: symbol statx from unsupported version GLIBC_2.28
13bitcoin-qt: symbol getrandom from unsupported version GLIBC_2.25
14bitcoin-qt: symbol renameat2 from unsupported version GLIBC_2.28
15bitcoin-qt: symbol getentropy from unsupported version GLIBC_2.25
16bitcoin-qt: failed IMPORTED_SYMBOLS
17bitcoin-wallet: symbol exp from unsupported version GLIBC_2.29
18bitcoin-wallet: symbol log from unsupported version GLIBC_2.29
19bitcoin-wallet: symbol fcntl64 from unsupported version GLIBC_2.28
20bitcoin-wallet: failed IMPORTED_SYMBOLS
21test_bitcoin: symbol getrandom from unsupported version GLIBC_2.25
22test_bitcoin: symbol log from unsupported version GLIBC_2.29
23test_bitcoin: symbol fcntl64 from unsupported version GLIBC_2.28
24test_bitcoin: symbol pow from unsupported version GLIBC_2.29
25test_bitcoin: symbol exp from unsupported version GLIBC_2.29
26test_bitcoin: failed IMPORTED_SYMBOLS