Statische Linker-Albträume: Das Klagen eines SDK-Anbieters

2025-07-22
Statische Linker-Albträume: Das Klagen eines SDK-Anbieters

Als SDK-Anbieter müssen wir sowohl dynamische als auch statische Verlinkungsoptionen anbieten. Statische Archive (.a) scheinen einfach, sind aber voller Gefahren. Das Standardverhalten des Linkers zerlegt das Archiv in Objektdateien und wählt diese einzeln aus, was zu aufgeblähten Binärdateien und Laufzeitabstürzen aufgrund von Problemen mit der Reihenfolge von Konstruktoren/Destruktoren führen kann. Während -Wl,--whole-archive hilfreich ist, erzwingt es die Einbeziehung aller Bibliotheksdateien, unabhängig vom Bedarf. Namenskonflikte innerhalb statischer Archive stellen ebenfalls erhebliche Probleme dar. Um diese Herausforderungen zu bewältigen, schlägt der Autor ein neues Dateiformat „Static Bundle Object“ (.sbo) vor. Dies würde die Symbol-Sichtbarkeitsgarantien eines Shared Objects bieten und viele Verlinkungsprobleme vermeiden, selbst wenn dies bedeutet, dass eine mögliche Optimierung der Binärdateigröße geopfert wird. Der Autor argumentiert, dass ein stabiles Verlinkungssystem den Kompromiss wert ist.

Entwicklung