ABI: Compare libstdc++.so.6 by version definitions
On Exherbo, the realpath()
of libstdc++.so.6
is something like
/usr/x86_64-pc-linux-gnu/lib/libstdc++-10.so.6.0.28
as part of a way
to switch between gcc major versions. This doesn't strverscmp()
correctly against the libstdc++.so.6.0.25
in the soldier runtime,
or the equivalent in the scout runtime.
Because the libstdc++ ABI is curated by the gcc maintainers and associates every symbol with a public version definition, we should be able to compare versions correctly by comparing their set of version definitions.
This resolves the main part of https://github.com/ValveSoftware/steam-runtime/issues/381.
Still to do: verify that the version definitions are maintained as carefully as I think they are (the history of the .symbols
file in Debian can confirm this).
This should be cherry-picked into soldier and sniper after merge.