diff --git a/include/boost/archive/detail/decl.hpp b/include/boost/archive/detail/decl.hpp index 44e22be9..cf0071cb 100644 --- a/include/boost/archive/detail/decl.hpp +++ b/include/boost/archive/detail/decl.hpp @@ -30,6 +30,9 @@ #if defined(__BORLANDC__) #define BOOST_ARCHIVE_DECL(T) T __export #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __export + #elif defined(BOOST_GCC) && BOOST_GCC >= 4 + #define BOOST_ARCHIVE_DECL(T) __attribute__ ((visibility ("default"))) + #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __attribute__ ((visibility ("default"))) #else #define BOOST_ARCHIVE_DECL(T) __declspec(dllexport) T #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllexport) T @@ -37,6 +40,9 @@ #else #if defined(__BORLANDC__) #define BOOST_ARCHIVE_DECL(T) T __import + #elif defined(BOOST_GCC) && BOOST_GCC >= 4 + #define BOOST_ARCHIVE_DECL(T) __attribute__ ((visibility ("default"))) + #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __attribute__ ((visibility ("default"))) #else #define BOOST_ARCHIVE_DECL(T) __declspec(dllimport) T #endif @@ -45,6 +51,9 @@ #if defined(__BORLANDC__) #define BOOST_WARCHIVE_DECL(T) T __export #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __export + #elif defined(BOOST_GCC) && BOOST_GCC >= 4 + #define BOOST_WARCHIVE_DECL(T) __attribute__ ((visibility ("default"))) + #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __attribute__ ((visibility ("default"))) #else #define BOOST_WARCHIVE_DECL(T) __declspec(dllexport) T #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllexport) T @@ -52,6 +61,9 @@ #else #if defined(__BORLANDC__) #define BOOST_WARCHIVE_DECL(T) T __import + #elif defined(BOOST_GCC) && BOOST_GCC >= 4 + #define BOOST_WARCHIVE_DECL(T) __attribute__ ((visibility ("default"))) + #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __attribute__ ((visibility ("default"))) #else #define BOOST_WARCHIVE_DECL(T) __declspec(dllimport) T #endif