Linker, loader en uitvoerbare formaten
Wanneer wordt bij gedeelde bibliotheken op Linux het versienummer van de soname, zoals de „.1” in libfoo.so.1, in het algemeen verhoogd?
- AWanneer ook maar één fout is verholpen
- BWanneer het bibliotheekbestand naar een andere map is verplaatst
- CBij een wijziging die de ABI-compatibiliteit met oude programma's verbreekt, zoals het veranderen van functieargumenten of de indeling van structuren
Antwoord en toelichting tonen
Antwoord: C. Bij een wijziging die de ABI-compatibiliteit met oude programma's verbreekt, zoals het veranderen van functieargumenten of de indeling van structuren
Een dynamisch gelinkt programma gebruikt tijdens uitvoering de gedeelde bibliotheek die met de soname is opgegeven. Bij een compatibiliteitsbehoudende correctie volstaat vervangen met dezelfde soname en wordt dit in alle programma's verwerkt. Wijzigt men daarentegen argumenttypen of de grootte van structuren, dan zouden oude programma's op onjuiste aannames aanroepen, dus wordt het soname-nummer verhoogd en als een andere bibliotheek behandeld, zodat de oude versie ernaast kan bestaan.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten