This PR is:
- a partial fix for #21454 (see #22281 for the complete fix of the
bitcoind
compatibility) - a well documented alternative to the hackish #22287
As noted in #22244 (comment):
* `fcntl64` has a data reference, it's not ever called in the code (`objdump -d bitcoin-qt|grep fcntl64@plt` shows nothing)
but on 64-bit systems the only offender is libsqlite3.a
.
From glibc docs:
- The
fcntl
function now have a Long File Support variant namedfcntl64
. It is added to fix some Linux Open File Description (OFD) locks usage on non LFS mode. As for others *64 functions,fcntl64
semantics are analogous withfcntl
and LFS support is handled transparently. Also for Linux, the OFD locks act as a cancellation entrypoint.
From SQLite docs:
SQLITE_DISABLE_LFS
If this C-preprocessor macro is defined, large file support is disabled.
Due to peculiarities in glibc Large File Support implementation for 32-bit systems it looks safer to bump the minimum libc version to 2.28 for them.
Could be reverted back after bumping minimum glibc version to 2.28+.