The C++ ABI From the Ground Up
summary
Explains the Itanium C++ ABI details that matter: name mangling, calling conventions, class and vtable layout, RTTI and exception wiring, and how tiny source changes change binary contracts. Demonstrates concrete breaks: adding or reordering Point members, defaulting pair destructors that switch register vs stack passing, and header-only/static ODR pitfalls. Shows controls: -fvisibility=hidden, visibility attributes, inline namespaces and key-function tricks to pin vtables, and diagnostics with nm and c++filt and abidiff (libabigail).
AI-written summary · about
chapters (8)
- 0:00Start
- 8:20put the base class members before the derived class members
- 11:36allow lambdas in unevaluated context
- 25:01the odr in c + +
- 30:38define an inline function out of line
- 31:37add new classes
- 36:47control the api surface
- 46:54dump your symbol table
related talks
01h 29mC++ API & ABI versioning
01h 06mWhat is an ABI, and Why is Breaking it Bad?
39mWhat Is an ABI, and Why Should You Care?
35mAll the Binaries Together: A Semantic Approach to Application Binary Interfaces
01h 37mC++ And Beyond: Discussion
49m“Which Machine Am I Coding To?”
47mAPI Design Principles
18mMix Testing: Specifying and Testing ABI Compatibility of C/C++ Atomics Implementations
