
On Aug 20, 2010, at 10:38 AM, Robert Ramey wrote:
Jeff Flinn wrote:
Building boost 1.44 on Mac OSX generating universal binaries fails to compile serialization lib, due to static asserts in basic_binary_?archive.hpp's at:
BOOST_STATIC_ASSERT(sizeof(tracking_type) == sizeof(char));
It appears that this fails for the ppc architecture.
Robert, Any ideas on fixing this?
Thanks, Jeff
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
I included these asserts to trap any future change in the size of these types. Accidently changing these sizes silently breaks previous archives which is a major pain.
boost/archive/tracking_type is actually a bool - which I had assumed would be a char in all machines. So I guess that correct way to express this would be:
BOOST_STATIC_ASSERT(sizeof(tracking_type) == sizeof(bool));
Try making this change and verify that it fixes the problem and I'll check in the change.
Tests done on my Mac running 10.6.4: $ g++ --version i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664) $ cat junk.cpp #include <iostream> int main ( int argc, char *argv[] ) { std::cout << "sizeof (bool) = " << sizeof (bool) << std::endl; return 0; } $ g++ -arch i386 junk.cpp && ./a.out sizeof (bool) = 1 $ g++ -arch x86_64 junk.cpp && ./a.out sizeof (bool) = 1 $ g++ -arch ppc junk.cpp && ./a.out sizeof (bool) = 4 -- Marshall