$linuxjunkies
>

ABI break

also: binary compatibility break

A change to a software library's binary interface that makes previously compiled programs incompatible, requiring them to be recompiled. An ABI break occurs when function signatures, data structures, or calling conventions change in a way that breaks binary compatibility.

An ABI break (Application Binary Interface break) happens when a library changes its compiled binary interface in a backwards-incompatible way. Unlike API changes (source code level), ABI changes affect already-compiled binaries that depend on the library.

Common causes include changing function signatures, modifying struct layouts, removing exported symbols, or altering calling conventions. For example, if libfoo version 1.0 exports a function int get_value() but version 2.0 changes it to long get_value(), programs compiled against 1.0 will crash or malfunction when run against 2.0, even without recompilation.

ABI breaks are serious in distributions because they cascade through dependency chains. When a core library breaks its ABI, all dependent packages must be rebuilt. This is why major version bumps (like glibc or Qt) are carefully coordinated and often require full distribution rebuilds. Developers use symbol versioning to prevent accidental ABI breaks.

Related terms