Warum hat glibc.so schwache Symbole, wenn sie sich nur auf statische Verknüpfungen beziehen?Linux

Linux verstehen
Guest
 Warum hat glibc.so schwache Symbole, wenn sie sich nur auf statische Verknüpfungen beziehen?

Post by Guest »

Ich habe die folgenden Fragen gelesen:
  • 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
Und ich verstehe immer noch nicht, warum es W für z.B. puts?

Code: Select all

nm -D /lib/x86_64-linux-gnu/libc.so.6  | grep puts
0000000000080e50 W puts@@GLIBC_2.2.5
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).

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post