I am using boost 1.39 on suse linux with gcc 4.2.1 and using a debug build.
In order to rationalize the long compile times, I was attempting to split a file
into multiple translation units. When I ran my tests, they all passed, but then
crashed with a memory fault.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7cd26d0 (LWP 21897)]
0xb7d40a08 in strcmp () from /lib/libc.so.6
(gdb) bt
#0  0xb7d40a08 in strcmp () from /lib/libc.so.6
#1  0x08e19924 in boost::serialization::extended_type_info::key_unregister ()
#2  0x08e19ace in boost::serialization::extended_type_info::~extended_type_info ()
#3  0x08c41afc in ~extended_type_info_typeid (this=0x92179cc) at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/extended_type_info_typeid.hpp:80
#4  0x08c41bbe in ~singleton_wrapper (this=0x92179cc) at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/singleton.hpp:104
#5  0x08c209e0 in __tcf_25 () at /var/tmp/ma0/boost/boost_1_39_0/boost/serialization/singleton.hpp:121
#6  0xb7d00599 in exit () from /lib/libc.so.6
#7  0xb7ce9fe8 in __libc_start_main () from /lib/libc.so.6
#8  0x08a833f1 in _start ()
 
It appears that boost serialisation type registration has problems when it is split into multiple files. Also it appears
that most of serialisation test all appear in a single file, hence these kinds of issues can easily be missed.
Is there any work around to this problem ?

  Best regards,
Ta,
   Avi