静的リンクの悪夢:SDKプロバイダーの嘆き
2025-07-22

SDKプロバイダーとして、動的リンクと静的リンクの両方のオプションを提供することが求められています。静的アーカイブ(.a)は一見単純に見えますが、危険でいっぱいです。リンカのデフォルト動作はアーカイブを原子化し、オブジェクトファイルを選択するため、膨張したバイナリや、コンストラクタ/デストラクタの順序付けの問題によるランタイムクラッシュにつながる可能性があります。-Wl,--whole-archive は役立ちますが、必要かどうかに関係なく、すべてのライブラリファイルを含めることを強制します。静的アーカイブ内の名前の衝突も大きな問題です。これらの課題を克服するために、著者は新しい「Static Bundle Object」(.sbo)ファイル形式を提案しています。これにより、共有オブジェクトのシンボル可視性の保証が得られ、多くのリンクの問題が回避されます。バイナリのサイズ最適化を多少犠牲にしても、安定したリンクエコシステムの方が価値があるというのが著者の主張です。
開発