godotengine / godotengine/godot-cpp
Linux extensions built on glibc 2.41+ produce binaries incompatible with older Godot binaries
- Dominant language
- C++
- Stars
- 2.7k
- Forks
- 809
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 8
Description
### 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
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.