A new issue with boost::interprocess in boost 1.51: it is incompatible with Wine. Not only that, but it makes bitcoin crash out with an assertion failure:
boost/interprocess/detail/windows_intermodule_singleton.hpp:145
Message: &get_map_unlocked() == m
It occurs immediately after new message_queue(...). It seems that Wine (1.4, which comes with Ubuntu Precise) doesn't have support for Windows semaphores, as it logs a message:
fixme:ntdll:NtQuerySemaphore (0x320,0,0x1b3f290,0x00000008,0x1b3f2a4) stub!
Which is fine, if it just meant no URI support. But as said, boost crashes the entire process. This is no issue for people running on Windows, but for us testing windows builds in Wine this is incredibly annoying.
I'm really getting tired of boost::interprocess issues on Windows. The whole construction with shared memory objects is overkill for the job, anyway. Bonus points for someone that re-implements qtipcserver with a simple QLocalSocket (which uses named pipes) :-)
Edit: Boost 1.50 does not suffer from this problem, only 1.51+ does.