__dso_handle symbol wird immer nur lokal gelinkt



  • Moin,

    implementiere gerade meine eigene libc, bin jetzt auf ein Problem gestoßen.

    wenn ich das symbol __dso_handle so deklariere:

    extern "C" {  
    extern void *__dso_handle __attribute__((__visibility__("hidden"))) = &__dso_handle; 
    };
    

    zeigt mir readelf folgendes an:

    readelf -a src/libc.so.1.0.0 | grep dso
       224: 000000000001f580     8 OBJECT  LOCAL  DEFAULT   20 __dso_handle
    

    bauen lässt sich so das Project auch mit den Testunits. Kann aber andere SHARED Libraries nicht gegen linken.
    Was ich nicht verstehe warum es auf "LOCAL" gesetzt ist obwohl ich "extern" davor geschrieben habe müsste dort nicht WEAK dann stehen.

    Als Compiler setzte ich Clang ein und der Code ist in C++ geschrieben.

    https://tuxist.de/git/jan.koester/systempp

    Hat jemand eine idee wie sich das Problem lösen lässt ?



  • habe das nostdlib entfernt schon ging es


Anmelden zum Antworten