Éditeurs de liens, chargeurs et exécutables
Sous Linux, dans quel cas incrémente-t-on généralement le numéro de version du soname, comme le « .1 » de libfoo.so.1 ?
- ADès qu'un seul bogue est corrigé
- BLorsqu'on déplace le fichier de la bibliothèque dans un autre répertoire
- CLorsqu'on effectue une modification qui rompt la compatibilité ABI avec les anciens programmes, comme changer les arguments d'une fonction ou l'agencement d'une structure
Afficher la réponse et l'explication
Réponse : C. Lorsqu'on effectue une modification qui rompt la compatibilité ABI avec les anciens programmes, comme changer les arguments d'une fonction ou l'agencement d'une structure
Un programme à liens dynamiques utilise à l'exécution la bibliothèque partagée désignée par son soname. Une correction préservant la compatibilité se fait en remplaçant simplement la bibliothèque sous le même soname, et s'applique à tous les programmes. En revanche, si l'on change le type des arguments ou la taille d'une structure, les anciens programmes l'appelleraient sur de fausses hypothèses ; on incrémente donc le numéro du soname pour la traiter comme une bibliothèque distincte, installable à côté de l'ancienne version.
Continuer : 9 autres questions sur Éditeurs de liens, chargeurs et exécutables