This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: problem with __dso_handle on Linux/alpha
- To: rth at cygnus dot com
- Subject: Re: problem with __dso_handle on Linux/alpha
- From: "Martin v. Loewis" <martin at loewis dot home dot cs dot tu-berlin dot de>
- Date: Thu, 4 May 2000 23:19:41 +0200
- CC: chris at lslsun dot epfl dot ch, gcc at gcc dot gnu dot org
- References: <200005041551.RAA04672@lslsun.epfl.ch> <20000504124705.E16385@cygnus.com>
> Your libstdc++ was built incorrectly. __dso_handle should have been
> defined its local copy of that symbol.
Actually, I assume that it *does* define a copy of that symbol - only
that the copy is a local symbol, and there is a relocation against the
symbol's value in the GOT, and the dynamic linker won't use the local
symbol (which IMO violates the ABI for hidden, but the dynamic linker
predates that part of the ABI)
There are three solutions:
a) downgrade to binutils that don't support .hidden at all,
b) upgrade to today's CVS binutils, or
c) undef the HAVE_GAS_HIDDEN definition in auto-host.h
Hope this helps,
Martin