This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: libstdc++ related boostrap failure
On Thu, Feb 13, 2003 at 09:17:04PM -0600, Loren James Rittle wrote:
>
> < __gthread_mutex_t _Atomic_add_mutex __attribute__ ((__weak__))
> < = __GTHREAD_MUTEX_INIT;
> ---
> > extern __gthread_mutex_t _Atomic_add_mutex;
>
> The non-extern implementation was moved into the library without being
> exported in the symbol map (i.e. hidden, not available for satisfying
> the linker).
That was by design; clearly I don't understand FreeBSD as well as I should.
This symbol should ("should") only be needed by other routines within the
library, not outside it. Namely, the two routines in atomicity.h. I'm
confused as to why bits/gthr-default.h is showing the undefined reference.
Forcing the generic atomicity.h to be used on my system doesn't show this
problem, so I think it's still an OS thing, instead of an architectural
thing. I'll need help from the two of you to understand what's going on.
> I think I shall allow Phil to handle considering the export of ABI
> symbols that are conditionally available on a per-port basis.
This will either be trivial or fugly, depending on GNU ld. I'll tackle
this today.
> OTOH,
> the included patch does solve Gerald's problem.
Gerald, would you be willing to just use that patch locally, temporarily?
I'd really like to work out /why/ the symbol needs external visibility
before making another change. Or rather, where the reference is coming from.
Phil
--
I would therefore like to posit that computing's central challenge, viz. "How
not to make a mess of it," has /not/ been met.
- Edsger Dijkstra, 1930-2002