What Is an ABI, and Why Should You Care?
summary
Explains that ABI is the machine-level contract behind APIs and shows concrete breakages: renaming a shared function causes an undefined symbol, changing a function signature crashes, and reordering struct fields silently corrupts results while appending a field keeps compatibility. Recommends practical defenses: symbol versioning and opaque types, system-level guarantees like KABI, and automated checks with libabigail (abi diff) in CI. Gives real examples: Wine and QEMU emulate ABIs and the 2038 time fix requires recompilation to avoid ABI breakage.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 1:57Defining API vs ABI
- 5:20ABI breakage demonstration
- 12:11Under the hood
- 19:52Handling ABI changes
- 26:05Importance of ABI stability
- 31:28Real-world examples
- 34:24Takeaways and Q&A
related talks
39mWhat Is an ABI, and Why Should You Care?
01h 06mWhat is an ABI, and Why is Breaking it Bad?
01h 29mC++ API & ABI versioning
01h 09mABI Stability Strikes Back
54mThe C++ ABI From the Ground Up
40mImproving UAPI Compatibility Review with Automated Tooling
47mAPI Design Principles
50mHow to break an ABI and keep your users happy
