Hi,
Boost does not use __attribute__ ((visibility("default"))), therefore typeinfo for exceptions is not exported and you can't catch exceptions thrown by boost.
Please forgive me if this is a stupid question:
Is that a bug or a feature? Wouldn't it be good to be able to catch exceptions thrown by boost?
I'm not sure I understand. Have you built Boost with an additional -fvisibility-hidden parameter? If you didn't, the default visibility should be the appropriately named "default", should it not? What effect would __attribute__ ((visibility("default"))) then have?
Even if boost is compiled with default visibility, Roland's compile is still going to see it has hidden since the class declaration in question (boost::thread_interrupted) hasn't been explicitly exported in the g++ symbol visibility-enabled case.
Roland, you should be able to work around the lack of g++ symbol visibility support in boost::thread by wrapping your boost #include<>s with the appropriate pragmas, e.g:
#pragma GCC visibility push(default)
#include