Index: /home/hunold/src/devel/boost/boost/archive/detail/basic_config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/basic_config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/basic_config.hpp (working copy) @@ -22,7 +22,7 @@ #include -#ifdef BOOST_HAS_DECLSPEC // defined in config system +#ifdef BOOST_SYMBOL_EXPORT // defined in config system // we need to import/export our code only if the user has specifically // asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost // libraries to be dynamically linked, or BOOST_ARCHIVE_DYN_LINK @@ -30,12 +30,12 @@ #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_ARCHIVE_DYN_LINK) // export if this is our own source, otherwise import: #ifdef BOOST_ARCHIVE_SOURCE -# define BOOST_ARCHIVE_DECL __declspec(dllexport) +# define BOOST_ARCHIVE_DECL BOOST_SYMBOL_EXPORT #else -# define BOOST_ARCHIVE_DECL __declspec(dllimport) +# define BOOST_ARCHIVE_DECL BOOST_SYMBOL_IMPORT #endif // BOOST_ARCHIVE_SOURCE #endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT // // if BOOST_ARCHIVE_DECL isn't defined yet define it now: #ifndef BOOST_ARCHIVE_DECL Index: /home/hunold/src/devel/boost/boost/archive/detail/basic_iarchive.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/basic_iarchive.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/basic_iarchive.hpp (working copy) @@ -37,8 +37,8 @@ namespace detail { class basic_iarchive_impl; -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iserializer; -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer; +class basic_iserializer; +class basic_pointer_iserializer; ////////////////////////////////////////////////////////////////////// // class basic_iarchive - read serialized objects from a input stream class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive : Index: /home/hunold/src/devel/boost/boost/archive/detail/basic_iserializer.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/basic_iserializer.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/basic_iserializer.hpp (working copy) @@ -39,8 +39,8 @@ namespace archive { namespace detail { -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive; -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer; +class basic_iarchive; +class basic_pointer_iserializer; class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iserializer : public basic_serializer Index: /home/hunold/src/devel/boost/boost/archive/detail/basic_oarchive.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/basic_oarchive.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/basic_oarchive.hpp (working copy) @@ -39,8 +39,8 @@ namespace detail { class basic_oarchive_impl; -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oserializer; -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer; +class basic_oserializer; +class basic_pointer_oserializer; ////////////////////////////////////////////////////////////////////// // class basic_oarchive - write serialized objects to an output stream class BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oarchive : Index: /home/hunold/src/devel/boost/boost/archive/detail/basic_oserializer.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/basic_oserializer.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/basic_oserializer.hpp (working copy) @@ -40,8 +40,8 @@ namespace archive { namespace detail { -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oarchive; -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer; +class basic_oarchive; +class basic_pointer_oserializer; class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oserializer : public basic_serializer Index: /home/hunold/src/devel/boost/boost/archive/detail/basic_pointer_iserializer.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/basic_pointer_iserializer.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/basic_pointer_iserializer.hpp (working copy) @@ -37,8 +37,8 @@ namespace archive { namespace detail { -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive; -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iserializer; +class basic_iarchive; +class basic_iserializer; class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer : public basic_serializer { Index: /home/hunold/src/devel/boost/boost/archive/detail/basic_pointer_oserializer.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/basic_pointer_oserializer.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/basic_pointer_oserializer.hpp (working copy) @@ -36,8 +36,8 @@ namespace archive { namespace detail { -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oarchive; -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oserializer; +class basic_oarchive; +class basic_oserializer; class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer : public basic_serializer Index: /home/hunold/src/devel/boost/boost/archive/detail/decl.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/decl.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/decl.hpp (working copy) @@ -24,21 +24,21 @@ #include #include -#if defined(BOOST_HAS_DECLSPEC) +#if defined(BOOST_SYMBOL_EXPORT) #if (defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK)) #if defined(BOOST_ARCHIVE_SOURCE) #if defined(__BORLANDC__) #define BOOST_ARCHIVE_DECL(T) T __export #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __export #else - #define BOOST_ARCHIVE_DECL(T) __declspec(dllexport) T - #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllexport) T + #define BOOST_ARCHIVE_DECL(T) BOOST_SYMBOL_EXPORT T + #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) BOOST_SYMBOL_EXPORT T #endif #else #if defined(__BORLANDC__) #define BOOST_ARCHIVE_DECL(T) T __import #else - #define BOOST_ARCHIVE_DECL(T) __declspec(dllimport) T + #define BOOST_ARCHIVE_DECL(T) BOOST_SYMBOL_IMPORT T #endif #endif #if defined(BOOST_WARCHIVE_SOURCE) @@ -46,25 +46,25 @@ #define BOOST_WARCHIVE_DECL(T) T __export #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __export #else - #define BOOST_WARCHIVE_DECL(T) __declspec(dllexport) T - #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllexport) T + #define BOOST_WARCHIVE_DECL(T) BOOST_SYMBOL_EXPORT T + #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) BOOST_SYMBOL_EXPORT T #endif #else #if defined(__BORLANDC__) #define BOOST_WARCHIVE_DECL(T) T __import #else - #define BOOST_WARCHIVE_DECL(T) __declspec(dllimport) T + #define BOOST_WARCHIVE_DECL(T) BOOST_SYMBOL_IMPORT T #endif #endif #if !defined(BOOST_WARCHIVE_SOURCE) && !defined(BOOST_ARCHIVE_SOURCE) #if defined(__BORLANDC__) #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __import #else - #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllimport) T + #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) BOOST_SYMBOL_IMPORT T #endif #endif #endif -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT #if ! defined(BOOST_ARCHIVE_DECL) #define BOOST_ARCHIVE_DECL(T) T Index: /home/hunold/src/devel/boost/boost/archive/detail/interface_iarchive.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/interface_iarchive.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/interface_iarchive.hpp (working copy) @@ -27,7 +27,7 @@ namespace archive { namespace detail { -class BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer; +class basic_pointer_iserializer; template class interface_iarchive Index: /home/hunold/src/devel/boost/boost/archive/detail/interface_oarchive.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/detail/interface_oarchive.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/detail/interface_oarchive.hpp (working copy) @@ -29,7 +29,7 @@ namespace archive { namespace detail { -class BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer; +class basic_pointer_oserializer; template class interface_oarchive Index: /home/hunold/src/devel/boost/boost/archive/polymorphic_iarchive.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/polymorphic_iarchive.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/polymorphic_iarchive.hpp (working copy) @@ -46,8 +46,8 @@ } // namespace serialization namespace archive { namespace detail { - class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive; - class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive; + class basic_iarchive; + class basic_iarchive; } class polymorphic_iarchive; Index: /home/hunold/src/devel/boost/boost/archive/polymorphic_oarchive.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/archive/polymorphic_oarchive.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/archive/polymorphic_oarchive.hpp (working copy) @@ -45,8 +45,8 @@ } // namespace serialization namespace archive { namespace detail { - class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oarchive; - class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oserializer; + class basic_oarchive; + class basic_oserializer; } class polymorphic_oarchive; Index: /home/hunold/src/devel/boost/boost/config/compiler/gcc.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/config/compiler/gcc.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/config/compiler/gcc.hpp (working copy) @@ -116,6 +116,16 @@ # endif #endif +// +// Symbol visibility support for gcc-4.x +// MinGW/Cygwin is handled via platform/win32.hpp +// +#if __GNUC__ >= 4 && !defined(__MINGW32__) && !defined(__CYGWIN__) +# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default"))) +# define BOOST_SYMBOL_IMPORT BOOST_SYMBOL_EXPORT +#endif + +// // C++0x features not implemented in any GCC version // #define BOOST_NO_CONSTEXPR Index: /home/hunold/src/devel/boost/boost/config/platform/win32.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/config/platform/win32.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/config/platform/win32.hpp (working copy) @@ -25,6 +25,12 @@ # define BOOST_HAS_DECLSPEC #endif +// +// all compilers support dllexport/-import +// +#define BOOST_SYMBOL_EXPORT __declspec(dllexport) +#define BOOST_SYMBOL_IMPORT __declspec(dllimport) + #if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0))) # define BOOST_HAS_STDINT_H # define __STDC_LIMIT_MACROS Index: /home/hunold/src/devel/boost/boost/date_time/compiler_config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/date_time/compiler_config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/date_time/compiler_config.hpp (working copy) @@ -118,7 +118,7 @@ * */ -#ifdef BOOST_HAS_DECLSPEC // defined in config system +#ifdef BOOST_SYMBOL_EXPORT // defined in config system // we need to import/export our code only if the user has specifically // asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost // libraries to be dynamically linked, or BOOST_DATE_TIME_DYN_LINK @@ -126,12 +126,12 @@ # if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_DATE_TIME_DYN_LINK) // export if this is our own source, otherwise import: # ifdef BOOST_DATE_TIME_SOURCE -# define BOOST_DATE_TIME_DECL __declspec(dllexport) +# define BOOST_DATE_TIME_DECL BOOST_SYMBOL_EXPORT # else -# define BOOST_DATE_TIME_DECL __declspec(dllimport) +# define BOOST_DATE_TIME_DECL BOOST_SYMBOL_IMPORT # endif // BOOST_DATE_TIME_SOURCE # endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT // // if BOOST_WHATEVER_DECL isn't defined yet define it now: #ifndef BOOST_DATE_TIME_DECL Index: /home/hunold/src/devel/boost/boost/filesystem/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/filesystem/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/filesystem/config.hpp (working copy) @@ -70,7 +70,7 @@ # error Dynamic linking Boost.Filesystem does not work for Borland; use static linking instead # endif -#ifdef BOOST_HAS_DECLSPEC // defined in config system +#ifdef BOOST_SYMBOL_EXPORT // defined in config system // we need to import/export our code only if the user has specifically // asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost // libraries to be dynamically linked, or BOOST_FILESYSTEM_DYN_LINK @@ -78,12 +78,12 @@ #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) // export if this is our own source, otherwise import: #ifdef BOOST_FILESYSTEM_SOURCE -# define BOOST_FILESYSTEM_DECL __declspec(dllexport) +# define BOOST_FILESYSTEM_DECL BOOST_SYMBOL_EXPORT #else -# define BOOST_FILESYSTEM_DECL __declspec(dllimport) +# define BOOST_FILESYSTEM_DECL BOOST_SYMBOL_IMPORT #endif // BOOST_FILESYSTEM_SOURCE #endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT // // if BOOST_FILESYSTEM_DECL isn't defined yet define it now: #ifndef BOOST_FILESYSTEM_DECL Index: /home/hunold/src/devel/boost/boost/graph/dll_import_export.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/graph/dll_import_export.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/graph/dll_import_export.hpp (working copy) @@ -13,15 +13,15 @@ #include -#ifdef BOOST_HAS_DECLSPEC +#ifdef BOOST_SYMBOL_EXPORT # if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_GRAPH_DYN_LINK) # ifdef BOOST_GRAPH_SOURCE -# define BOOST_GRAPH_DECL __declspec(dllexport) +# define BOOST_GRAPH_DECL BOOST_SYMBOL_EXPORT # else -# define BOOST_GRAPH_DECL __declspec(dllimport) +# define BOOST_GRAPH_DECL BOOST_SYMBOL_IMPORT # endif // BOOST_GRAPH_SOURCE # endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT #ifndef BOOST_GRAPH_DECL # define BOOST_GRAPH_DECL Index: /home/hunold/src/devel/boost/boost/iostreams/detail/config/dyn_link.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/iostreams/detail/config/dyn_link.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/iostreams/detail/config/dyn_link.hpp (working copy) @@ -20,12 +20,12 @@ //------------------Enable dynamic linking on windows-------------------------// -#ifdef BOOST_HAS_DECLSPEC +#ifdef BOOST_SYMBOL_EXPORT # if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_IOSTREAMS_DYN_LINK) # ifdef BOOST_IOSTREAMS_SOURCE -# define BOOST_IOSTREAMS_DECL __declspec(dllexport) +# define BOOST_IOSTREAMS_DECL BOOST_SYMBOL_EXPORT # else -# define BOOST_IOSTREAMS_DECL __declspec(dllimport) +# define BOOST_IOSTREAMS_DECL BOOST_SYMBOL_IMPORT # endif # endif #endif Index: /home/hunold/src/devel/boost/boost/math/tr1.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/math/tr1.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/math/tr1.hpp (working copy) @@ -22,7 +22,7 @@ #endif // __cplusplus -#ifdef BOOST_HAS_DECLSPEC // defined in config system +#ifdef BOOST_SYMBOL_EXPORT // defined in config system // we need to import/export our code only if the user has specifically // asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost // libraries to be dynamically linked, or BOOST_MATH_TR1_DYN_LINK @@ -30,12 +30,12 @@ #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_MATH_TR1_DYN_LINK) // export if this is our own source, otherwise import: #ifdef BOOST_MATH_TR1_SOURCE -# define BOOST_MATH_TR1_DECL __declspec(dllexport) +# define BOOST_MATH_TR1_DECL BOOST_SYMBOL_EXPORT #else -# define BOOST_MATH_TR1_DECL __declspec(dllimport) +# define BOOST_MATH_TR1_DECL BOOST_SYMBOL_IMPORT #endif // BOOST_MATH_TR1_SOURCE #endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT // // if BOOST_MATH_TR1_DECL isn't defined yet define it now: #ifndef BOOST_MATH_TR1_DECL Index: /home/hunold/src/devel/boost/boost/mpi/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/mpi/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/mpi/config.hpp (working copy) @@ -80,12 +80,12 @@ * * *****************************************************************************/ -#if defined(BOOST_HAS_DECLSPEC) && (defined(BOOST_MPI_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_MPI_STATIC_LINK) +#if defined(BOOST_SYMPOL_EXPORT) && (defined(BOOST_MPI_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_MPI_STATIC_LINK) # if defined(BOOST_MPI_SOURCE) -# define BOOST_MPI_DECL __declspec(dllexport) +# define BOOST_MPI_DECL BOOST_SYMBOL_EXPORT # define BOOST_MPI_BUILD_DLL # else -# define BOOST_MPI_DECL __declspec(dllimport) +# define BOOST_MPI_DECL BOOST_SYMBOL_IMPORT # endif #endif Index: /home/hunold/src/devel/boost/boost/mpi/python/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/mpi/python/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/mpi/python/config.hpp (working copy) @@ -20,12 +20,12 @@ * * *****************************************************************************/ -#if defined(BOOST_HAS_DECLSPEC) && (defined(BOOST_MPI_PYTHON_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_MPI_PYTHON_STATIC_LINK) +#if defined(BOOST_SYMBOL_EXPORT) && (defined(BOOST_MPI_PYTHON_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_MPI_PYTHON_STATIC_LINK) # if defined(BOOST_MPI_PYTHON_SOURCE) -# define BOOST_MPI_PYTHON_DECL __declspec(dllexport) +# define BOOST_MPI_PYTHON_DECL BOOST_SYMBOL_EXPORT # define BOOST_MPI_PYTHON_BUILD_DLL # else -# define BOOST_MPI_PYTHON_DECL __declspec(dllimport) +# define BOOST_MPI_PYTHON_DECL BOOST_SYMBOL_IMPORT # endif #endif Index: /home/hunold/src/devel/boost/boost/program_options/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/program_options/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/program_options/config.hpp (working copy) @@ -35,16 +35,16 @@ /////////////////////////////////////////////////////////////////////////////// // Windows DLL suport -#ifdef BOOST_HAS_DECLSPEC +#ifdef BOOST_SYMBOL_EXPORT #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_PROGRAM_OPTIONS_DYN_LINK) // export if this is our own source, otherwise import: #ifdef BOOST_PROGRAM_OPTIONS_SOURCE -# define BOOST_PROGRAM_OPTIONS_DECL __declspec(dllexport) +# define BOOST_PROGRAM_OPTIONS_DECL BOOST_SYMBOL_EXPORT #else -# define BOOST_PROGRAM_OPTIONS_DECL __declspec(dllimport) +# define BOOST_PROGRAM_OPTIONS_DECL BOOST_SYMBOL_IMPORT #endif // BOOST_PROGRAM_OPTIONS_SOURCE #endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT #ifndef BOOST_PROGRAM_OPTIONS_DECL #define BOOST_PROGRAM_OPTIONS_DECL Index: /home/hunold/src/devel/boost/boost/python/detail/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/python/detail/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/python/detail/config.hpp (working copy) @@ -68,28 +68,13 @@ #if defined(BOOST_PYTHON_DYNAMIC_LIB) -# if !defined(_WIN32) && !defined(__CYGWIN__) \ - && !defined(BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY) \ - && BOOST_WORKAROUND(__GNUC__, >= 3) && (__GNUC_MINOR__ >=5 || __GNUC__ > 3) -# define BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY 1 -# endif - -# if BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY +# if defined(BOOST_SYMBOL_EXPORT) # if defined(BOOST_PYTHON_SOURCE) -# define BOOST_PYTHON_DECL __attribute__ ((visibility("default"))) +# define BOOST_PYTHON_DECL BOOST_SYMBOL_EXPORT # define BOOST_PYTHON_BUILD_DLL # else -# define BOOST_PYTHON_DECL +# define BOOST_PYTHON_DECL BOOST_SYMBOL_IMPORT # endif -# define BOOST_PYTHON_DECL_FORWARD -# define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((visibility("default"))) -# elif (defined(_WIN32) || defined(__CYGWIN__)) -# if defined(BOOST_PYTHON_SOURCE) -# define BOOST_PYTHON_DECL __declspec(dllexport) -# define BOOST_PYTHON_BUILD_DLL -# else -# define BOOST_PYTHON_DECL __declspec(dllimport) -# endif # endif #endif @@ -98,14 +83,6 @@ # define BOOST_PYTHON_DECL #endif -#ifndef BOOST_PYTHON_DECL_FORWARD -# define BOOST_PYTHON_DECL_FORWARD BOOST_PYTHON_DECL -#endif - -#ifndef BOOST_PYTHON_DECL_EXCEPTION -# define BOOST_PYTHON_DECL_EXCEPTION BOOST_PYTHON_DECL -#endif - #if BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042)) // Replace broken Tru64/cxx offsetof macro # define BOOST_PYTHON_OFFSETOF(s_name, s_member) \ Index: /home/hunold/src/devel/boost/boost/python/detail/exception_handler.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/python/detail/exception_handler.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/python/detail/exception_handler.hpp (working copy) @@ -11,7 +11,7 @@ namespace boost { namespace python { namespace detail { -struct BOOST_PYTHON_DECL_FORWARD exception_handler; +struct exception_handler; typedef function2 const&> handler_function; Index: /home/hunold/src/devel/boost/boost/python/detail/wrapper_base.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/python/detail/wrapper_base.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/python/detail/wrapper_base.hpp (working copy) @@ -14,7 +14,7 @@ namespace detail { - class BOOST_PYTHON_DECL_FORWARD wrapper_base; + class wrapper_base; namespace wrapper_base_ // ADL disabler { Index: /home/hunold/src/devel/boost/boost/python/errors.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/python/errors.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/python/errors.hpp (working copy) @@ -14,7 +14,7 @@ namespace boost { namespace python { -struct BOOST_PYTHON_DECL_EXCEPTION error_already_set +struct BOOST_PYTHON_DECL error_already_set { virtual ~error_already_set(); }; Index: /home/hunold/src/devel/boost/boost/python/object/instance.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/python/object/instance.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/python/object/instance.hpp (working copy) @@ -11,7 +11,7 @@ namespace boost { namespace python { - struct BOOST_PYTHON_DECL_FORWARD instance_holder; + struct instance_holder; }} // namespace boost::python namespace boost { namespace python { namespace objects { Index: /home/hunold/src/devel/boost/boost/regex/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/regex/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/regex/config.hpp (working copy) @@ -186,12 +186,12 @@ * ****************************************************************************/ -#if defined(BOOST_HAS_DECLSPEC) && (defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_REGEX_STATIC_LINK) +#if defined(BOOST_SYMBOL_EXPORT) && (defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_REGEX_STATIC_LINK) # if defined(BOOST_REGEX_SOURCE) -# define BOOST_REGEX_DECL __declspec(dllexport) +# define BOOST_REGEX_DECL BOOST_SYMBOL_EXPORT # define BOOST_REGEX_BUILD_DLL # else -# define BOOST_REGEX_DECL __declspec(dllimport) +# define BOOST_REGEX_DECL BOOST_SYMBOL_IMPORT # endif #endif Index: /home/hunold/src/devel/boost/boost/serialization/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/serialization/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/serialization/config.hpp (working copy) @@ -27,7 +27,7 @@ #undef BOOST_SERIALIZATION_DECL #endif -#ifdef BOOST_HAS_DECLSPEC // defined in config system +#ifdef BOOST_SYMBOL_EXPORT // defined in config system // we need to import/export our code only if the user has specifically // asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost // libraries to be dynamically linked, or BOOST_SERIALIZATION_DYN_LINK @@ -41,17 +41,17 @@ #if defined(__BORLANDC__) #define BOOST_SERIALIZATION_DECL(T) T __export #else - #define BOOST_SERIALIZATION_DECL(T) __declspec(dllexport) T + #define BOOST_SERIALIZATION_DECL(T) BOOST_SYMBOL_EXPORT T #endif #else #if defined(__BORLANDC__) #define BOOST_SERIALIZATION_DECL(T) T __import #else - #define BOOST_SERIALIZATION_DECL(T) __declspec(dllimport) T + #define BOOST_SERIALIZATION_DECL(T) BOOST_SYMBOL_IMPORT T #endif #endif // defined(BOOST_SERIALIZATION_SOURCE) #endif // defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK) -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT // if BOOST_SERIALIZATION_DECL isn't defined yet define it now: #ifndef BOOST_SERIALIZATION_DECL Index: /home/hunold/src/devel/boost/boost/signals/detail/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/signals/detail/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/signals/detail/config.hpp (working copy) @@ -17,15 +17,15 @@ #include -#ifdef BOOST_HAS_DECLSPEC +#ifdef BOOST_SYMBOL_EXPORT # if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SIGNALS_DYN_LINK) # ifdef BOOST_SIGNALS_SOURCE -# define BOOST_SIGNALS_DECL __declspec(dllexport) +# define BOOST_SIGNALS_DECL BOOST_SYMBOL_EXPORT # else -# define BOOST_SIGNALS_DECL __declspec(dllimport) +# define BOOST_SIGNALS_DECL BOOST_SYMBOL_IMPORT # endif // BOOST_SIGNALS_SOURCE # endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT #ifndef BOOST_SIGNALS_DECL # define BOOST_SIGNALS_DECL Index: /home/hunold/src/devel/boost/boost/system/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/system/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/system/config.hpp (working copy) @@ -31,7 +31,7 @@ //# error Dynamic linking Boost.System does not work for Borland; use static linking instead //# endif -#ifdef BOOST_HAS_DECLSPEC // defined in config system +#ifdef BOOST_SYMBOL_EXPORT // defined in config system // we need to import/export our code only if the user has specifically // asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost // libraries to be dynamically linked, or BOOST_SYSTEM_DYN_LINK @@ -39,12 +39,12 @@ #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK) // export if this is our own source, otherwise import: #ifdef BOOST_SYSTEM_SOURCE -# define BOOST_SYSTEM_DECL __declspec(dllexport) +# define BOOST_SYSTEM_DECL BOOST_SYMBOL_EXPORT #else -# define BOOST_SYSTEM_DECL __declspec(dllimport) +# define BOOST_SYSTEM_DECL BOOST_SYMBOL_IMPORT #endif // BOOST_SYSTEM_SOURCE #endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT // // if BOOST_SYSTEM_DECL isn't defined yet define it now: #ifndef BOOST_SYSTEM_DECL Index: /home/hunold/src/devel/boost/boost/test/detail/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/test/detail/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/test/detail/config.hpp (working copy) @@ -84,13 +84,13 @@ #if defined(BOOST_TEST_DYN_LINK) # define BOOST_TEST_ALTERNATIVE_INIT_API -# if defined(BOOST_HAS_DECLSPEC) && defined(BOOST_TEST_DYN_LINK) +# if defined(BOOST_SYMBOL_EXPORT) && defined(BOOST_TEST_DYN_LINK) # ifdef BOOST_TEST_SOURCE -# define BOOST_TEST_DECL __declspec(dllexport) +# define BOOST_TEST_DECL BOOST_SYMBOL_EXPORT # else -# define BOOST_TEST_DECL __declspec(dllimport) +# define BOOST_TEST_DECL BOOST_SYMBOL_IMPORT # endif // BOOST_TEST_SOURCE -# endif // BOOST_HAS_DECLSPEC +# endif // BOOST_SYMBOL_EXPORT #endif // BOOST_TEST_DYN_LINK Index: /home/hunold/src/devel/boost/boost/thread/detail/config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/thread/detail/config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/thread/detail/config.hpp (working copy) @@ -45,17 +45,17 @@ # endif #endif -#if defined(BOOST_HAS_DECLSPEC) +#if defined(BOOST_SYMBOL_EXPORT) # if defined(BOOST_THREAD_BUILD_DLL) //Build dll -# define BOOST_THREAD_DECL __declspec(dllexport) +# define BOOST_THREAD_DECL BOOST_SYMBOL_EXPORT # elif defined(BOOST_THREAD_USE_DLL) //Use dll -# define BOOST_THREAD_DECL __declspec(dllimport) +# define BOOST_THREAD_DECL BOOST_SYMBOL_IMPORT # else # define BOOST_THREAD_DECL # endif #else # define BOOST_THREAD_DECL -#endif // BOOST_HAS_DECLSPEC +#endif // BOOST_SYMBOL_EXPORT // // Automatically link to the correct build variant where possible. @@ -89,6 +89,6 @@ // Change Log: // 22 Jan 05 Roland Schwarz (speedsnail) -// Usage of BOOST_HAS_DECLSPEC macro. +// Usage of BOOST_SYMBOL_EXPORT macro. // Default again is static lib usage. // BOOST_DYN_LINK only defined when autolink included. Index: /home/hunold/src/devel/boost/boost/wave/wave_config.hpp =================================================================== --- /home/hunold/src/devel/boost/boost/wave/wave_config.hpp (revision 61822) +++ /home/hunold/src/devel/boost/boost/wave/wave_config.hpp (working copy) @@ -403,15 +403,15 @@ /////////////////////////////////////////////////////////////////////////////// // Set up dll import/export options -#if defined(BOOST_HAS_DECLSPEC) && \ +#if defined(BOOST_SYMBOL_EXPORT) && \ (defined(BOOST_WAVE_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && \ !defined(BOOST_WAVE_STATIC_LINK) #if defined(BOOST_WAVE_SOURCE) -#define BOOST_WAVE_DECL __declspec(dllexport) +#define BOOST_WAVE_DECL BOOST_SYMBOL_EXPORT #define BOOST_WAVE_BUILD_DLL #else -#define BOOST_WAVE_DECL __declspec(dllimport) +#define BOOST_WAVE_DECL BOOST_SYMBOL_IMPORT #endif #endif // building a shared library Index: /home/hunold/src/devel/boost/libs/config/doc/macro_reference.qbk =================================================================== --- /home/hunold/src/devel/boost/libs/config/doc/macro_reference.qbk (revision 61822) +++ /home/hunold/src/devel/boost/libs/config/doc/macro_reference.qbk (working copy) @@ -317,6 +317,62 @@ [#config_features] +[section Macros controlling symbol visibility] + +Some compilers and/or platforms have support for controlling which symbols +will be exported from shared libraries. The msvc compiler using +`__declspec(dllexport)` and `__declspec(dllimport)` is the classic case. +Modern gcc also supports some analogue using `__attribute__((visibility("default")))` +for all symbols which should be exported and hiding all other using the +`-fvisibility-hidden` compiler switch. +These macros are always defined on `Windows-Platform` +and defined for gcc greater 4 on all platforms. + +[table +[[Macro ][Description ]] +[[`BOOST_HAS_DECLSPEC`][ +The compiler uses `__declspec(dllexport)` and `__declspec(dllimport)` to +export/import symbols from dll's. +]] +[[`BOOST_SYMBOL_EXPORT`][ +Export the following symbols. +]] +[[`BOOST_SYMBOL_IMPORT`][ +Import the following symbols. +]] +] + +[endsect] + + +[section Macros controlling symbol visibility] + +Some compilers and/or platforms have support for controlling which symbols +will be exported from shared libraries. The msvc compiler using +`__declspec(dllexport)` and `__declspec(dllimport)` is the classic case. +Modern gcc also supports some analogue using `__attribute__((visibility("default")))` +for all symbols which should be exported and hiding all other using the +`-fvisibility-hidden` or `-fvisibility-ms-compat` compiler switch. +These macros are always defined on `Windows-Platform` +and defined for gcc greater 4 on all other platforms. + +[table +[[Macro ][Description ]] +[[`BOOST_HAS_DECLSPEC`][ +The compiler uses `__declspec(dllexport)` and `__declspec(dllimport)` to +export/import symbols from dll's. +]] +[[`BOOST_SYMBOL_EXPORT`][ +Export the following symbol from a shared library. +]] +[[`BOOST_SYMBOL_IMPORT`][ +Import the following symbol from a shared library. +]] +] + +[endsect] + + [section Macros that describe optional features] The following macros describe features that are not required by the C++ @@ -332,10 +388,6 @@ [[`BOOST_HAS_CLOCK_GETTIME`][Platform][ The platform has the POSIX API `clock_gettime`. ]] -[[`BOOST_HAS_DECLSPEC`][Compiler][ -The compiler uses `__declspec(dllexport)` and `__declspec(dllimport)` to -export/import symbols from dll's. -]] [[`BOOST_HAS_DIRENT_H`][Platform][ The platform has the POSIX header ``. ]] Index: /home/hunold/src/devel/boost/libs/config/test/link/link_test.hpp =================================================================== --- /home/hunold/src/devel/boost/libs/config/test/link/link_test.hpp (revision 61822) +++ /home/hunold/src/devel/boost/libs/config/test/link/link_test.hpp (working copy) @@ -44,11 +44,11 @@ // // set up import and export options: // -#if defined(BOOST_HAS_DECLSPEC) && defined(BOOST_DYN_LINK) +#if defined(BOOST_SYMBOL_EXPORT) && defined(BOOST_DYN_LINK) # ifdef BOOST_CONFIG_SOURCE -# define BOOST_CONFIG_DECL __declspec(dllexport) +# define BOOST_CONFIG_DECL BOOST_SYMBOL_EXPORT # else -# define BOOST_CONFIG_DECL __declspec(dllimport) +# define BOOST_CONFIG_DECL BOOST_SYMBOL_IMPORT # endif #endif #ifndef BOOST_CONFIG_DECL Index: /home/hunold/src/devel/boost/libs/serialization/src/basic_serializer_map.cpp =================================================================== --- /home/hunold/src/devel/boost/libs/serialization/src/basic_serializer_map.cpp (revision 61822) +++ /home/hunold/src/devel/boost/libs/serialization/src/basic_serializer_map.cpp (working copy) @@ -16,6 +16,7 @@ #include #define BOOST_ARCHIVE_SOURCE +#define BOOST_SERIALIZATION_SOURCE #include #include Index: /home/hunold/src/devel/boost/libs/serialization/src/shared_ptr_helper.cpp =================================================================== --- /home/hunold/src/devel/boost/libs/serialization/src/shared_ptr_helper.cpp (revision 61822) +++ /home/hunold/src/devel/boost/libs/serialization/src/shared_ptr_helper.cpp (working copy) @@ -19,6 +19,7 @@ #include // NULL #define BOOST_ARCHIVE_SOURCE +#define BOOST_SERIALIZATION_SOURCE #include #include