This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Avoid link error with Solaris ld and local COMDAT group signature symbols (PR gas/12181)
Mark Mitchell <mark@codesourcery.com> writes:
> 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.
No problem. I just wanted to make sure that we have some sort of
solution for binutils 2.21.
>> 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.
Thanks. I'll pass that on; I'm confident this will be fixed in the
Solaris ld soon.
>> - 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.
Ok. My reasoning for doing this in every case was that I wanted to
avoid target-specific code if we can do without. I'll wrap the global
hidden change in #ifdef TE_SOLARIS with an appropriate comment (do we
list PRs in code comments for purposes like this?), retest and resubmit.
Thanks.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University