On Wed, Aug 26, 2015 at 5:40 AM, Daniel van Vugt <daniel.van.v...@canonical.com> wrote: > I guess the way we want to and should maintain ABIs is that the contents of > a stanza MIR_SERVER_N { } never changes (although you can always add a new > stanza MIR_SERVER_N+1 with changes). So store a historical copy of existing > "ABIs" such as MIR_SERVER_N and compare to make sure its contents never > change (if still present at all).
That's how libstdc++ does it, and they've done a pretty good job of maintaining ABI copatibility for about 15 years (GCC-5 notwithstanding: sometimes you just have to break ABI). This has to be done in conjunction with an additional check tool, though, which is why a symbols version file is used in the sources *and* dpkg-gensymbols is used in the packaging on Debian-based systems. Libstdc++ actually uses its own tool during the build to look for missing symbol changes at build time. This is a false security, though, because most of the insidious ABI changes do not show up as symbol name changes. -- Mir-devel mailing list Mir-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/mir-devel