
Mat Marcus:
On the boost users list, there was a discussion about some issues arising with boost versus gcc-4.2 on Apple systems. One interesting issue arises from the fact that Apple decoupled the gcc compiler version from the lib version. They "own" libstdc++, which they've kept at version 4.0 even when the 4.2 compiler. This breaks some assumptions in boost headers. I am reposting on the main developer list:
###
Peter Dimov wrote:
Is the new Apple GCC documented somewhere? I wasn't able to find anything related to a new assembler syntax or -fasm-blocks. Can you ask Apple to explain the issue? Stock g++ 4.2.x compiles the code, so the problem must be Apple-specific.
This is the original problem report: http://lists.boost.org/boost-users/2008/04/35786.php It is not caused by libstdc++, but by inline asm syntax.
This is the case because boost assumes that a 4.2 compiler implies 4.2 libraries in flies such as boost/detail/atomic_count_gcc.hpp:
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) # include <ext/atomicity.h> #else # include <bits/atomicity.h> #endif
atomic_count_gcc.hpp is only included on non-x86/x64 platforms when the g++ version is 4.0 or earlier. g++ 4.2 should use either atomic_count_gcc_x86.hpp or atomic_count_sync.hpp.