On Tue, 19 Feb 2019 at 13:58, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote:
>
> Hi Iain,
>
> >> Thanks.  This will have to wait for
> >>
> >>         [libphobos] Use sections_elf_shared.d on Solaris 11.5 (PR d/88150)
> >>         https://gcc.gnu.org/ml/gcc-patches/2019-01/msg01661.html
> >
> > I'll make a fork of sections support tonight, as that seems to be the
> > right way forwards.
> >
> > Other parts will need upstreaming, I can do that as well.
>
> that would be great, thanks.
>
> >> and
> >>         [libphobos] Work around lack of dlpi_tls_modid before Solaris 11.5
> >>         https://gcc.gnu.org/ml/gcc-patches/2019-01/msg01664.html
> >>
> >
> > Johannes has already commented there, and he is right about needing a
> > way to get tls data from DSOs.
>
> Understood.  Maybe I can find a way to generalize the hack derived from
> sections_ldc.d to TLS segments outside the executable.
>
> >> of course.  Maybe even
> >>
> >>         [libphobos] Work around Solaris ld bug linking __tls_get_addr on
> >> 64-bit x86
> >>         https://gcc.gnu.org/ml/gcc-patches/2019-01/msg01663.html
> >>
> >> will be needed depending on whether a proper ld fix makes it into
> >> Solaris 11.5 or not.
> >
> > I'm not sure about this, but haven't looked at it properly just yet.
>
> I don't think you need concern yourself with this very much: it's just a
> hack around a Solaris ld bug, suggested by the Solaris linker engineers
> for the moment.  Once the dlpi_tls_modid patch lands in Solaris 11.5
> (this week or next), I'll ask if they see a chance to have that bug
> fixed in time for the Solaris 11.5 release.  If so, nobody besides
> myself will ever be exposed to this issue.
>

I've just given building gcc a try in an OpenIndiana VM, and get the following:

ld: fatal: option -z has illegal argument 'relax=transtls'
ld: fatal: flags processing errors
collect2: error: ld returned 1 exit status

$ ld --version
ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1756 (illumos)

My fatal mistake of course was not configuring with
--with-ld=/usr/gnu/bin/ld, however it is notable that not all Solaris
linkers support this relax=transtls option.

-- 
Iain

Reply via email to