Subject: Re: toolchain/32954: devel/glib2 fails to build under current/amd64 due to ld bug
To: None <martijnb@atlas.ipv6.stack.nl>
From: Nick Hudson <nick.hudson@dsl.pipex.com>
List: netbsd-bugs
Date: 03/03/2006 15:52:49
On Friday 03 March 2006 14:50, martijnb@atlas.ipv6.stack.nl wrote:
> Klaus Klein wrote:
> >  The problem here is apparently caused by gconvert.c declaring
> >  _g_charset_get_aliases() with attribute(visibility("hidden")),
> >  which doesn't match its definition (in a different source file).
>
> Well, the problem certainly ceases to be when I fix the declaration to
> match the definition, but I'm not entirely sure I understand what the
> intended purpose of using that attribute was, as it fails to make
> sense to me the way it is right now.

I the intent is to not expose _g_charset_get_aliases. Without fixing the 
definition to match the declaration this doesn't work, i.e. before the
fix

$ uname -a
NetBSD arthur 3.0_STABLE NetBSD 3.0_STABLE (ARTHUR) #3: Thu Feb  9 08:32:39 GMT 2006  nick@arthur:/usr/obj/i386/usr/src-3/sys/arch/i386/compile/ARTHUR i386
$ nm -D /usr/pkg/lib/libglib-2.0.so.0 | grep _g_charset_get_aliases
0003fcb0 T _g_charset_get_aliases

> Furthermore, I don't quite grok why 
> this only seems to affect amd64 - so I'm a bit relucant to file a PR under
> pkg- for it with a fix. I'm afraid that I'd be breaking things somewhere
> else..

ld/bfd on amd64 is just more fussy about linking DSOs.

Nick