Binärkompatibilität
Binärkompatibilität bezeichnet die Fähigkeit von Softwarekomponenten, Binärdateien zu verknüpfen oder auszuführen, ohne dass der Quellcode neu kompiliert werden muss. Sie hängt eng mit dem Application Binary Interface (ABI) zusammen, das Festlegungen zu Funktions- und Datenschnittstellen, Aufrufkonventionen, Datentypen, Speicherlayout und Start-up-Code umfasst. Abhängigkeiten erstrecken sich über Architektur, Betriebssystem und Compiler. Praktisch bedeutet dies, dass Programme eine neue Bibliothek oder Laufzeitumgebung nutzen können, ohne neu zu kompilieren.
Man unterscheidet Abwärts- und Vorwärtskompatibilität. Abwärtskompatibilität bedeutet, dass neuere Systeme oder Bibliotheken ältere Binärdateien unterstützen; Vorwärtskompatibilität
Herausforderungen ergeben sich bei ABI-Änderungen: Das Layout von Strukturen, Funktionssignaturen oder Aufrufkonventionen kann sich ändern; Funktionen
Maßnahmen zur Wahrung der Binärkompatibilität umfassen eine ABI-stabile Politik, Bibliothek-Versionierung einschließlich Symbolversionierung, Deprecation-Strategien, Wrapper- oder Adapter-Schichten
Beispiele finden sich in Linux mit der glibc-ABI und Windows mit der Win32/Win64-ABI. POSIX-Standards helfen ebenfalls,