• [^] # Re: Allez, on va en faire quelques uns ;-)

    Posté par (site web personnel) . En réponse au journal Linux : la plus vaste blague de l'informatique. Évalué à 7.

    > Donc ça changeait avant.

    Oui.

    > Et quels sont les types de changement rencontrés et leur incidence ?

    Impossibilité de linker des binaires compilés avec des versions incompatibles.

    > Et comment ce fait-il que jusqu'à une version 3

    GCC est avant tout destiné à compiler des logiciels libres. Au niveau source, les changements d'ABI ne posent pas de problèmes. Donc, pour les devs de GCC, ça n'était pas un gros problème. Par contre, pour les gens qui utilisent des bibliothèques non-libres, c'est très chiant, et heureusement qu'ils ont réussi à stabiliser la chose, en effet.

    > d'un compilateur

    GCC n'est pas "un compilateur", mais une collection de compilateurs. Là, on ne parle que du compilateur C++. Le C++ n'existe pas depuis si longtemps que ça, et la norme a un peu évolué depuis le début du langage. Pour le compilateur C, tu te doutes qu'en effet, l'ABI n'a pas changé depuis des lustres.

    > une ABI, ça n'a à priori pas besoin d'évoluer très souvent ??

    Tu peux regarder comment est foutue l'ABI C++ de GCC si tu as une semaine à perdre. C'est un truc archi-compliqué (le C++ avec de l'héritage multiple, de la covariance, des templates & cie, c'est une horreur à implémenter), et aujourd'hui vraiment bien optimisé. Bref, ça aurait été bien qu'ils fassent le truc parfait du premier coup, mais on peut comprendre que ça ne soit pas si évident :-/