Skip to content

build: bitcoin-qt built against Qt 5.12 requires glibc 2.28+ #22280

@hebasto

Description

@hebasto

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:

****************************************************************************
*                                  Linux                                   *
****************************************************************************


 - Fixed a number of incompatibilities with Linux C libraries due to use of
   new kernel system calls statx(2) and renameat2(2). In order to enable
   them now in Qt, they need to be provided in the C library's own
   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?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions