tuttleofx/TuttleOFX — pull request #232 by devernay (2013-07-17 08:47:53+00:00)
Title: declare exception tags as empty struct to fix visibility problems.

typeinfo and typeinfo name were visible, even when compiling with -fvisibility=hidden,
for the following types:
boost::errinfo_file_name_*
tuttle::exception::tag_ofxApi*
tuttle::exception::tag_nodeName*
tuttle::exception::tag_devMessage*
tuttle::exception::tag_ofxContext*
tuttle::exception::tag_userMessage*
tuttle::exception::tag_pluginIdentifier*
tuttle::exception::tag_time*

an alternative fix, which adds #pragmas, is adding this block at the beginning
of libraries/tuttle/src/tuttle/common/exceptions.hpp:
#if defined(__GNUC__)
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
# pragma GCC visibility push (default)
# endif
#endif
namespace boost {
struct errinfo_file_name_;
}
namespace tuttle { namespace exception {
struct tag_userMessage;
struct tag_devMessage;
struct tag_backtraceMessage;
struct tag_ofxContext;
struct tag_ofxAp;
struct tag_pluginIdentifier;
struct tag_pluginName;
struct tag_nodeName;
struct tag_time;
}}
#if defined(__GNUC__)
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
# pragma GCC visibility pop
# endif
#endif