Linker, Loader und ausführbare Formate
Welcher Vorteil ergibt sich, wenn man beim Erstellen einer Shared Library nur die von außen genutzten Funktionen veröffentlicht und die Sichtbarkeit (Visibility) der Symbole interner Funktionen auf „hidden“ setzt?
- ADie internen Funktionen werden verschlüsselt und sind nicht analysierbar
- BDie Zahl der vom dynamischen Linker behandelten Symbole sinkt, das Laden wird schneller, und interne Aufrufe müssen nicht über die PLT laufen
- CDie Bibliothek läuft auf jedem Betriebssystem
Antwort und Erläuterung anzeigen
Antwort: B. Die Zahl der vom dynamischen Linker behandelten Symbole sinkt, das Laden wird schneller, und interne Aufrufe müssen nicht über die PLT laufen
Veröffentlichte Symbole einer Shared Library können durch gleichnamige Definitionen anderer Module ersetzt werden; auch interne Aufrufe müssen daher über PLT und GOT laufen. Mit hidden sind sie von außen nicht sichtbar, die Zahl der vom dynamischen Linker zu prüfenden Symbole sinkt, und interne Aufrufe können direkt PC-relativ erfolgen. Auch Namenskollisionen mit anderen Bibliotheken werden vermieden, und die veröffentlichte ABI bleibt klein.