Pesadillas de enlace estático: El lamento de un proveedor de SDK

2025-07-22
Pesadillas de enlace estático: El lamento de un proveedor de SDK

Como proveedor de SDK, se espera que ofrezcamos opciones de enlace dinámico y estático. Los archivos estáticos (.a) parecen simples, pero están llenos de peligros. El comportamiento predeterminado del enlazador atomiza el archivo, eligiendo archivos de objeto, lo que potencialmente lleva a binarios hinchados y fallos en tiempo de ejecución debido a problemas de orden de constructores/destructores. Si bien -Wl,--whole-archive ayuda, fuerza la inclusión de todos los archivos de biblioteca, independientemente de la necesidad. Los conflictos de nombres dentro de los archivos estáticos también representan problemas significativos. Para superar estos desafíos, el autor propone un nuevo formato de archivo "Static Bundle Object" (.sbo). Esto ofrecería las garantías de visibilidad de símbolo de un objeto compartido, evitando muchos problemas de enlace, incluso si eso significa sacrificar alguna optimización de tamaño de binario potencial. El autor argumenta que un ecosistema de enlace estable vale la pena.

Desarrollo enlace estático