Pesadelos de vinculação estática: O lamento de um fornecedor de SDK

2025-07-22
Pesadelos de vinculação estática: O lamento de um fornecedor de SDK

Como fornecedor de SDK, esperamos oferecer opções de vinculação dinâmica e estática. Arquivos estáticos (.a) parecem simples, mas estão repletos de perigos. O comportamento padrão do vinculador atomiza o arquivo, escolhendo arquivos de objeto, potencialmente levando a binários inchados e falhas em tempo de execução devido a problemas de ordem de construtores/destrutores. Embora -Wl,--whole-archive ajude, ele força a inclusão de todos os arquivos de biblioteca, independentemente da necessidade. Conflito de nomes dentro de arquivos estáticos também representam problemas significativos. Para superar esses desafios, o autor propõe um novo formato de arquivo "Static Bundle Object" (.sbo). Isso ofereceria as garantias de visibilidade de símbolo de um objeto compartilhado, evitando muitos problemas de vinculação, mesmo que isso signifique sacrificar alguma otimização de tamanho de binário potencial. O autor argumenta que um ecossistema de vinculação estável vale a pena.

Desenvolvimento vinculação estática