gcc 3.0 missing __dso_handle in libstdc++
Artem Khodush
artem@duma.gov.ru
Mon May 28 05:09:00 GMT 2001
Andi Kleen wrote:
>
> I guess it's caused by the following in crtstuff.o:
>
> /* Declare the __dso_handle variable. It should have a unique value
> in every shared-object; in a main program its value is zero. The
> object should in any case be protected. This means the instance
> in one DSO or the main program is not used in another object. The
> dynamic linker takes care of this. */
>
> /* XXX Ideally the following should be implemented using
> __attribute__ ((__visibility__ ("hidden")))
> but the __attribute__ support is not yet there. */
> #ifdef HAVE_GAS_HIDDEN
> asm (".hidden\t__dso_handle");
> #endif
>
> #ifdef CRTSTUFFS_O
> void *__dso_handle = &__dso_handle;
> #else
> void *__dso_handle = 0;
> #endif
>
> but seems that doesn't work properly in glibc 2.1 and binutils 2.9.5.0 (hj lu versions I think)
> It may be a dynamic linker bug?
>
FWIW, I vaguely remember this problem was discussed earlier on some of the
gcc mailing lists, the outcome was that there is a bug in some specific versions of
binutils.
More information about the Gcc-bugs
mailing list