How to manage the GCC >= 5 ABI¶
In the GCC 5.1 release libstdc++ introduced a new library ABI
that includes new implementations of
These changes were necessary to conform to the 2011 C++ standard which forbids Copy-On-Write strings
and requires lists to keep track of their size.
You can choose which ABI to use in your Conan packages by adjusting the
- libstdc++: Old ABI.
- libstdc++11: New ABI.
When Conan create the default profile the first time it runs, adjust the
compiler.libcxx setting to
libstdc++ for backwards compatibility. If you are using GCC >= 5, your compiler is likely using
the new CXX11 ABI by default (libstdc++11).
If you want Conan to use the new ABI, edit the default profile at
compiler.libcxx=libstdc++11 or override this setting in the profile you are using.
If you are using the CMake build helper or the AutotoolsBuildEnvironment build helper
Conan will adjust automatically the
_GLIBCXX_USE_CXX11_ABI flag to manage the ABI.