[oi-dev] GCC rebuilds

Thomas Wagner tom-oi-dev at tom.bn-ulm.de
Tue Aug 1 18:26:56 UTC 2023


On Tue, Aug 01, 2023 at 06:25:46PM +0100, Peter Tribble wrote:
> > On Tue, Aug 01, 2023 at 05:09:26PM +0200, Marcel Telka wrote:
> > > On Tue, Aug 01, 2023 at 02:38:32PM +0100, Peter Tribble wrote:
> > > > On Tue, Aug 1, 2023 at 6:41 AM Stephan Althaus <
> > > > Stephan.Althaus at duedinghausen.eu> wrote:
[...]
> > Placing a library in /usr/lib/ that caused version incompatibilties in the
> > past
> > and most likely will continue to do so every now an then is not the best
> > idea.
> > Despite the promised compatibility in newer versions of the runtime libs.
> > In rare cases we've seen binaries compiled with an old gcc version not
> > being
> > compatible with the latest gcc runtime libs. Especially for C++.
> >
> 
> That would be a plain and simple bug; the gcc team take binary
> compatibility very seriously,
> and actually understand things like shared library versioning properly. To
> the extent that we
> have had a forward-compatible libstdc++ that manages to cleanly handle the
> fact that the
> C++ ABI itself changed (leading to the library transparently handling the
> dual ABI from gcc
> 5.1 onwards) along with multiple versions of the C++ language since about
> GCC 3.4.
 
One thing is that gcc didn't get the promise delivered properly
in the past. The other thing is the forced recompile of all packages,
if the gcc compiler changes.

I've seen troubles with a OS provided gcc runtime since 2007.
Therefore the SFE packaging project got the best and most stable
result by not loading the gcc runtime from /usr/lib 
- instead from a compiled in path in /usr/gcc*/n.n/lib (LINK_LIBGCC_SPEC)
and that path correctly delivered by the matching gcc runtime lib 
packages of that version. 

Sure there are several solutions to that problem. I prefer the SFE style.


Regards
Thomas

> Therefore the SFE packaging project points libs and binaries to a
> > versioned directory to get the version of runtime libs loaded they have
> > been compiled with.
> > e.g. binaries look first in /usr/gcc-sfe/4.9/lib and /usr/gcc-sfe/11/lib
> > for the runtime libs in an early stage.
> >
> > Regards
> > Thomas



More information about the oi-dev mailing list