Warum hat glibc.so schwache Symbole, wenn sie sich nur auf statische Verknüpfungen beziehen?
Posted: 19 Jan 2025, 18:03
Ich habe die folgenden Fragen gelesen:
Vielleicht hängt es irgendwie mit LD_DYNAMIC_WEAK zusammen, aber was bringt es, wenn libc.so sowieso zuletzt vom dynamischen Linker geladen wird, also gibt es kein Problem Überschreiben durch eine andere gemeinsam genutzte Bibliothek: Ich habe überprüft, ob ich sogar T-Symbole von libc.so überschreiben kann (sowohl durch Einfügen alternativer Definitionen in ein Hauptprogramm als auch in eine andere gemeinsam genutzte Bibliothek, die mit dem Hauptprogramm verknüpft ist Programm).
- Ist pthread in glibc.so durch ein schwaches Symbol implementiert, um pthread-Stub-Funktionen bereitzustellen? Dies erklärt, dass sich schwache Symbole eher auf statische Verknüpfungen als auf dynamische Linker beziehen.
- Warum haben einige libc-Symbole eine SCHWACH-Bindung und andere eine GLOBALE?
- https:/ /en.wikipedia.org/wiki/Weak_symbol
Code: Select all
nm -D /lib/x86_64-linux-gnu/libc.so.6 | grep puts
0000000000080e50 W puts@@GLIBC_2.2.5