J'ai l'honneur de vous faire part de la sortie de Bold, un linker d'un genre particulier qui ne servira pas à grand monde :-)

Il est spécifiquement conçu pour ceux qui souhaitent réaliser des intros 4k (voire 1k), et ne fonctionne que pour x86_64. Pour des tailles supérieures, je doute que ses avantages contrebalancent ses limitations.

Distribué sous GPL 3, il est écrit en python et disponible sur http://www.alrj.org/projects/bold/. Toute suggestion, amélioration, critique ou remarque est la bienvenue.

La partie "runtime", qui peut être incluse dans le binaire final, est écrite en assembleur et bénéficie d'une exception à la GPL, un peu comme le runtime de GCC.

Les principales caractéristiques de Bold sont les suivantes :

  • En-têtes ELF limités au strict minimum
  • Structures internes (particulièrement la table DYNAMIC) réduites à leur plus simple expression.
  • Résolution des symboles externes par hash, pour ne pas embarquer dans le binaire les noms de fonctions à rallonge (OpenGL est parfois champion pour ça)

J'ai encore quelques idées d'amélioration, mais peu de courage pour les implémenter :

  • Réordonner les différentes sections jusqu'à trouver l'arrangement qui compresse le mieux
  • Porter la chose pour x86, en 32 bits

La discussion, s'il y en a une, se passe sur http://linuxfr.org/~allergy/28643.html