Linux: release binary needs GLIBCXX_3.4.35; testers' systems only have 3.4.33 #147
Labels
No labels
amd
avatars
bug
builder
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
rendering
rt
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
backspace119/Slipstream#147
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Reported by a tester: the newest Linux build won't start. It requires
GLIBCXX_3.4.35(libstdc++ from GCC 15), and their system's libstdc++ only goes up toGLIBCXX_3.4.33(GCC 14 era: e.g. Ubuntu 24.10/25.04, Debian 13, Fedora 41).To do before the next release.
Why
We build on CachyOS with the current GCC, so the binary picks up symbol versions from the newest libstdc++.
make glibc-checkguards the glibc floor (<= 2.38, viaglibc_compat.hsymver pins), but nothing checks the GLIBCXX / CXXABI floor, so a GCC update silently raised it.Options
lib/. The launcher already setsLD_LIBRARY_PATH=./lib. Quickest and robust; slightly bigger package. Must make sure every bundled plugin (CEF/dullahan, VLC, gstreamer) resolves the same copy.-static-libstdc++ -static-libgcc) for the viewer and the plugins we build. No runtime dependency, but check that no prebuilt 3p .so needs a newer libstdc++ from the system.Also
make glibc-check(scripts; see the Linux portability notes) to report the maxGLIBCXX_*/CXXABI_*version each packaged binary needs, and fail above a chosen floor (e.g. 3.4.30 = GCC 12, or 3.4.32 = GCC 13).packaged/libtoo (objdump -T | grep GLIBCXX_).Related: Linux portability work (glibc symver pins, x86-64-v4 ISA check).