Overview
Explore the intricacies of binary compatibility for library developers in this comprehensive CppNow conference talk. Delve into the challenges faced by C++ library developers regarding ABI and binary compatibility, topics intentionally left out of the C++ standard. Learn about the complex C++ ABI implementations across different compilers and platforms. Discover simple guidelines, checklists, tooling, and processes to guarantee binary compatibility between releases, drawing from real-world examples used by Qt and KDE. Examine how Qt 4 maintained binary compatibility for over 7 years across multiple releases, and understand the mistakes made and corrected. Gain insights into compiler ABI implementation details, dynamic linking, and work guidelines for maintaining large libraries compatible with previous versions. Cover topics such as forward and backward compatibility, mangled names, inline namespaces, and experimental symbols.
Syllabus
Introduction
GCC
What is binary compatibility
Behavior
Forwards and backwards
Why should you care
Dynamic linking
Details
Removes
Retains
mangled names
things that dont work
Renaming
Inline namespace
ICU experimental symbols
How to make it work
Work guidelines
Taught by
CppNow