Hi all,

I have been interested in how to use a newer libstdc++ for programs that 
require it to be built and run when the system version of libstdc++ is not new 
enough.

I have a DragonFlyBSD box, where gcc 8 is the default compiler. I installed 
gcc9 (pkg install gcc9) and it suggests to attach its newer libstdc++.so.6 by 
RPATH:

> Message from gcc9-9.2.0_1:
>
> --
> To ensure binaries built with this toolchain find appropriate versions
> of the necessary run-time libraries, you may want to link using
>
>   -Wl,-rpath=/usr/local/lib/gcc9
>
> For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens

So, if I build something like this, a newer libstdc++ from 
/usr/local/lib/gcc9/libstdc++.so.6 will be loaded.

But what will happen when this binary links with other libraries which were 
linked with an older system version of libstdc++? when dlopen'ing them? The 
newer libstdc++ will be used instead of the older one that those other 
libraries were built against.  Are any problems expected and/or known to happen?

In theory, there may be problems, but I have not been able to find any of them.

Reply via email to