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.
