[oi-dev] gcc 5.3 testing
Aurélien Larcher
aurelien.larcher at gmail.com
Thu May 12 13:16:21 UTC 2016
> You probably want what SFE does and OpenCSW and a few others
> builing ontop of a OS-distro. That is: Make the runtime loaded
> from the private directory.
>
> Snipped from SFE patch gcc-05-LINK_LIBGCC_SPEC-49.diff
> gcc/config/sol2.h
>
Thanks for your input !
I did try patching this way but it could not work out of the box for 5.3
and I then followed what was done for gcc-3.
Also there is an autotools option to specify using gcc with runtime libs
for the specific version but reports say that it is broken for some
architecture since about 2011.
>
> +#undef LINK_LIBGCC_SPEC
> +#define LINK_LIBGCC_SPEC "%{m64:" "-R
> /usr/gcc/4.8/lib/ÄRCH64_SUBDIR":/usr/gcc/lib/ÄRCH64_SUBDIR" %D" "}%{!m64:"
> "-R /usr/gcc/4.8/lib:/usr/gcc/lib %D" "}"
>
> Described in very much detail (be strong when reading) some time ago,
> but still valid: http://tom.blog.in-ulm.de/GNU_gcc_spec_file
> and http://tom.blog.in-ulm.de/gcc_cookbook_for_a_distribution
>
> What is to avoid is: Really don't specify in the software which
> is to be compiled:
> "-L/usr/lib" or "-L/lib", "-R/usr/lib" and "-R/lib"
>
> So you might have rare occurence of a F/OSS build system that
> is so stupid to specify the _default_ searchpath of /usr/lib:/lib.
> The runtime linker does search these directories in any case as last
> resort (-L|-R as written in RPATH comes first!), so there is never
> a need for specifying this (on Solaris).
>
> As this might still lead to finding gcc-runtime in /usr/lib before the
> really wanted runtime from the correct gcc version is found in the
> private directory.
>
> So, SFE is really happy since years with the private gcc runtime,
> that means a distro should be safe a well, if the distro:
> - either compiles all with static gcc runtime
> or
> - keeps /usr/lib clean of libgcc_s.so and libstdc++.so.6 and
> run a compiler which searches _for_the_gcc_runtime first in
> the private directory, for instance
> /usr/gcc/5.3/lib/<libgcc_s.so|libstdc++.so.6>
>
>
> So the newer gcc versions removed LINK_LIBGCC_SPEC because they thought
> with
> "unwind" they would have solved that runtime problem. They didn't. So I
> patched
> back in the LINK_LIBGCC_SPEC defines for SFE in the more recent gcc
> versions.
> OI should as well use this define and not *ARCH32* and such.
>
> Regards,
> Thomas
>
>
>
> On Thu, May 12, 2016 at 01:40:52PM +0300, Alexander Pyhalov wrote:
> > On 05/12/2016 00:01, Aurélien Larcher wrote:
> > > I thought that -Y and -R that I added to the arch spec would take care
> of
> > > that. Is -L also needed ?
> > >
> >
> > Seems so. Adding -L makes things better.
> >
> >
> >
> >
> > --
> > Best regards,
> > Alexander Pyhalov,
> > system administrator of Southern Federal University IT department
>
> > --- ./gcc/config/sol2.h.orig 2016-05-08 21:13:10.810423614 +0200
> > +++ ./gcc/config/sol2.h 2016-05-08 21:16:55.681535743 +0200
> > @@ -195,8 +195,8 @@
> > "%{G:-G} \
> > %{YP,*} \
> > %{R*} \
> > - %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp%R/lib:%R/usr/lib} \
> > - %{!p:%{!pg:-Y P,%R/lib:%R/usr/lib}}}"
> > + %{!YP,*:%{p|pg:-Y P,%R/usr/gcc/5.3/lib:%R/lib:%R/usr/lib -R
> %R/usr/gcc/5.3/lib -L %R/usr/gcc/5.3/lib} \
> > + %{!p:%{!pg:-Y P,%R/usr/gcc/5.3/lib:%R/lib:%R/usr/lib -R
> %R/usr/gcc/5.3/lib -L %R/usr/gcc/5.3/lib}}}"
> >
> > #undef LINK_ARCH32_SPEC
> > #define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE
> > @@ -208,8 +208,8 @@
> > "%{G:-G} \
> > %{YP,*} \
> > %{R*} \
> > - %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/" ARCH64_SUBDIR ":%R/lib/"
> ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "} \
> > - %{!p:%{!pg:-Y P,%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/"
> ARCH64_SUBDIR "}}}"
> > + %{!YP,*:%{p|pg:-Y P,%R/usr/gcc/5.3/lib/" ARCH64_SUBDIR ":%R/lib/"
> ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR " -R %R/usr/gcc/5.3/lib/"
> ARCH64_SUBDIR " -L %R/usr/gcc/5.3/lib/" ARCH64_SUBDIR "} \
> > + %{!p:%{!pg:-Y P,%R/usr/gcc/5.3/lib/" ARCH64_SUBDIR ":%R/lib/"
> ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR " -R %R/usr/gcc/5.3/lib/"
> ARCH64_SUBDIR " -L %R/usr/gcc/5.3/lib/" ARCH64_SUBDIR "}}}"
> >
> > #undef LINK_ARCH64_SPEC
> > #ifndef USE_GLD
>
> > _______________________________________________
> > oi-dev mailing list
> > oi-dev at openindiana.org
> > http://openindiana.org/mailman/listinfo/oi-dev
>
> --
> --
> Thomas Wagner
>
> ------------------------------------------------------------------------
> Service rund um UNIX(TM), Wagner Network Services, Thomas Wagner
> Solaris(TM), Linux(TM) Eschenweg 21, 89174 Altheim, Germany
> Novell(TM), Windows(TM) TEL: +49-731-9807799, FAX: +49-731-9807711
> Telekommunikation, LAN, MOBILE/CELL: +49-171-6135989
> Internet-Service, Elektronik EMAIL: wagner at wagner-net.com
>
> _______________________________________________
> oi-dev mailing list
> oi-dev at openindiana.org
> http://openindiana.org/mailman/listinfo/oi-dev
>
--
---
Praise the Caffeine embeddings
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openindiana.org/pipermail/oi-dev/attachments/20160512/08637a10/attachment-0005.html>
More information about the oi-dev
mailing list