On Fri, 07 Feb 2020 at 09:28:24 +0200, Wouter Verhelst wrote: > Why not? This seems like the type of problem that SONAMEs are made for. > What am I missing?
SONAMEs are set by the upstream developer in their build system (building the same source code produces the same SONAME), and are cross-distro comparable/compatible. This makes them good for representing ABI breaks that result from changes to the upstream source code (like deleting a deprecated function or changing a struct's members), but bad for representing ABI breaks that result from external factors like a toolchain or compilation-option change. We didn't/couldn't change SONAMEs for the C++11 std::string transition (g++ 5, "v5" suffix), which was a similar situation. smcv