Specifically:
Is it assured somehow that all versions of glibc 2.x are binary compatible?
If not, how can I run a binary (game) on my system which has been compiled for a different version? Can I install glibc in a different folder?
My specific problem is the compatibility between glibc 2.14 (what I have) and 2.15 (what the game wants).
I might also get a version for glibc 2.13 but I'm not sure if that will run on 2.14.
Glibc has a versioning system that allows backward compatibility (older programs built to run on older versions of glibc will continue to run on new glibc); but it is of no help the other way around: programs that depend on newer glibc will usually not run on systems with older glibc.
In order to allow compilation of C++ written to such drafts, G++ contains some backwards compatibilities. All such backwards compatibility features are liable to disappear in future versions of G++. They should be considered deprecated.
The current stable version of glibc is 2.36, released on August 1st, 2022. The current development version of glibc is 2.37, releasing on or around February 1st, 2023.
In general, running binaries that were compiled for an older glibc version (e.g. 2.13) will run fine on a system with a newer glibc (e.g. 2.14, like your system).
Running a binary that was built for a newer glibc (e.g. 2.15, like the one that fails) on a system with an older glibc will probably not work.
In short, glibc is backward-compatible, not forward-compatible.
There are only minor binary compatibility issues between glibc 2.14 and glibc 2.15 according to the report from the Linux upstream tracker.
The report is generated by the abi-compliance-checker and abi-tracker tools.
See also https://sourceware.org/glibc/wiki/Testing/ABI_checker.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With