Today is slightly less busy for me and I have some time to study the new gcc 5. as already noted in http://lists.linuxfromscratch.org/pipermail/blfs-dev/2015-April/030081.html, there is an ABI change in the libstdc++ library. The old behavior can be preserved, though, because all the symbols (old and new) are contained in the libstdc++.so shared object. However this is not true of other libraries built using C++. The difference between old and new behavior just amounts to change a #define in the header files. This can be set at build time using the switch "--with-default-libstdcxx-abi" in configure.

So:
a) if you have built part or all of LFS/BLFS with gcc-4.9.2, and want to update to gcc-5.1.0, you need to use "--with-default-libstdcxx-abi=c++98" in order to preserve the old behavior. Otherwise, newly built packages using C++ will not be able to use old libraries built using C++. b) if you have built from scratch using gcc-5.1.0, you need to use "--with-default-libstdcxx-abi=c++11" (or nothing since it is the default).

Now the question is: should I assume hypothesis a) or hypothesis b) for GCC in BLFS? In case a), I would put the flag in the instructions and mention that it can be removed in "command explanations". In case b), I would not put the flag in the instructions and mention it in the "command explanations". Or put in another way: should I assume that an user building BLFS-development builds upon LFS-7.7, or upon LFS-development? Actually, I presently am in the first case (but of course, I can rebuild to be in a second case).

Regards,
Pierre

--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to