Avoid link error with Solaris ld and local COMDAT group signature symbols (PR gas/12181)

Mark Mitchell mark@codesourcery.com
Thu Nov 11 02:03:00 GMT 2010


On 11/10/2010 4:50 AM, Rainer Orth wrote:

> 2010-10-23  Mark Mitchell  <mark@codesourcery.com>

> broke GCC mainline bootstrap on Solaris 11 with CVS gas and Sun ld.

I've been insanely busy for the last couple of weeks, so I haven't been
paying as close attention as I should have been.  I'm very sorry.

> While the Solaris linker maintainers are willing to change ld,
> unfortunately nobody cared to comment on their analysis in the PR.
> Could someone (Mark?) please to so to get some progress on the Sun ld
> side of things?

I've now commented in the PR.

> -	  symbol_get_obj (sy)->local = 1;
> +	  symbol_get_bfdsym (sy)->flags |= BSF_OBJECT | BSF_GLOBAL;
> +	  S_SET_OTHER (sy, STV_HIDDEN);

FWIW, this seems like a hack to me.  I think the symbol really should be
local; why expose it to other systems?  If we want to do this for
Solaris ld compatibility (which I agree is a valid reason), I think we
should do conditionally on Solaris.

Thank you,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713



More information about the Binutils mailing list