Skip to content

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

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

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