Skip to content

Linux extensions built on glibc 2.41+ produce binaries incompatible with older Godot binaries #1976

Open

Description

@rpgshooter

Godot version

tested 4.6.2 stable

godot-cpp version

4.5

System information

Arch Linux latest, intel i7-9700

Issue description

glibc 2.41 added new versioned symbols for these C23 float-math functions, godot-cpp's build doesn't pin to old versions.

Suggested fix: opt-in flag in tools/linux.py/cmake/linux.cmake that compiles a .symver shim, like Steam/Chromium do. At least from what i can think of. Alternatives may exist

Steps to reproduce

  • Repro: build on Arch (glibc 2.43), load in any Godot binary built on glibc < 2.41 → version 'GLIBC_2.43' not found for sqrtf/acosf/asinf/atan2f.

Minimal reproduction project

N/A, build on arch latest stable. any extension with scons. then reports:
libm.so.6: version `GLIBC_2.43' not found (required by /example/path/to/addon.linux.editor.x86_64.so).
ERROR: drivers/unix/os_unix.cpp:1061 - Condition "!FileAccess::exists(path)" is true. Returning: ERR_FILE_NOT_FOUND
ERROR: GDExtension dynamic library not found: 'example/path/to/addon.gdextension'.

file paths are replaced for privacy

Activity

  1. Splizard commented on Apr 28, 2026

    @Splizard

    You can use Zig's C/C++ toolchain to target older versions of glibc ie zig c++ -target x86_64-linux-gnu.2.17

  2. rpgshooter commented on Apr 29, 2026

    @rpgshooter
    Author

    i see, my bad, apologies, i didnt think about that. i can close this issue if need be

  3. dsnopek commented on Apr 29, 2026

    @dsnopek
    Collaborator

    There's a couple of ways to handle this issue. My preferred one is just building on an older distro (usually via Docker on CI) which uses an older glibc version.

    Perhaps the resolution to this is to create some documentation laying out the options?

    So far we have:

    • Building on old distro
    • Creating .symver shim file
    • Using Zig toolchain
  4. rpgshooter commented on May 12, 2026

    @rpgshooter
    Author

    Running a docker or podman which would resolve under "using an older version/distro"

  5. added this to the 10.x milestone on Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions