As noted in #22244 (comment), the bitcon-qt
binary exports glibc symbols that were added in version 2.28:
renameat2
- The renameat2 function has been added, a variant of the renameat function which has a flags argument. If the flags are zero, the renameat2 function acts like renameat. If the flag is not zero and there is no kernel support for renameat2, the function will fail with an errno value of EINVAL. This is different from the existing gnulib function renameatu, which performs a plain rename operation in case of a RENAME_NOREPLACE flags and a non-existing destination (and therefore has a race condition that can clobber the destination inadvertently).
statx
- The statx function has been added, a variant of the fstatat64 function with an additional flags argument. If there is no direct kernel support for statx, glibc provides basic stat support based on the fstatat64 function.
From qtbase/dist/changes-5.11.3
:
0****************************************************************************
1* Linux *
2****************************************************************************
3
4
5 - Fixed a number of incompatibilities with Linux C libraries due to use of
6 new kernel system calls statx(2) and renameat2(2). In order to enable
7 them now in Qt, they need to be provided in the C library's own
8 headers. Currently, glibc 2.28 contains them.
Moreover, statx
requires minimum Linux kernel version 4.11.
Unless we find the way to disable Qt features that require these new glibc calls, should we bump minimum glibc version for the 22.0 release binaries? Or make different requirements for bitcoind
and bitcoin-qt
?