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