Steps to reproduce this issue on master (3ab2582c7fe76d2839ab493512758d5601903c86) on Linux Mint 20 (x86_64):
$ make -C depends NO_QT=1
$ CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure LDFLAGS="-static-libstdc++ -Wl,-O2"
$ make
$ make -C src check-symbols
make: Entering directory '/home/hebasto/guix/GitHub/bitcoin/src'
make[1]: Entering directory '/home/hebasto/guix/GitHub/bitcoin'
make[1]: Leaving directory '/home/hebasto/guix/GitHub/bitcoin'
make: Leaving directory '/home/hebasto/guix/GitHub/bitcoin/src'
Everything seems ok but, in fact, the check-symbols target is noop without the --enable-glibc-back-compat configure script option:
https://github.com/bitcoin/bitcoin/blob/a57af897ec16976b28de05aa0b9c3f6a96d73ede/src/Makefile.am#L718-L732
Actually, the symbol-check.py returns:
$ contrib/devtools/symbol-check.py src/bitcoind
src/bitcoind: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
src/bitcoind: symbol log from unsupported version GLIBC_2.29
src/bitcoind: symbol log2f from unsupported version GLIBC_2.27
src/bitcoind: symbol pow from unsupported version GLIBC_2.29
src/bitcoind: symbol exp from unsupported version GLIBC_2.29
src/bitcoind: failed IMPORTED_SYMBOLS
Here are suggestions:
- make the
check-symbolstarget independent of the--enable-glibc-back-compatconfigure script option - ~allow symbols from glibc up to version 2.29~
I'm not aware of historical context of this problem or any security pitfalls, therefore asking my colleagues: is it a right way to fix this issue?