Index: boost/archive/detail/basic_oserializer.hpp
===================================================================
--- boost/archive/detail/basic_oserializer.hpp	(revision 63668)
+++ 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: boost/archive/detail/basic_pointer_oserializer.hpp
===================================================================
--- boost/archive/detail/basic_pointer_oserializer.hpp	(revision 63668)
+++ 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: boost/archive/detail/basic_iarchive.hpp
===================================================================
--- boost/archive/detail/basic_iarchive.hpp	(revision 63668)
+++ 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: boost/archive/detail/basic_oarchive.hpp
===================================================================
--- boost/archive/detail/basic_oarchive.hpp	(revision 63668)
+++ 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: boost/archive/detail/basic_config.hpp
===================================================================
--- boost/archive/detail/basic_config.hpp	(revision 63668)
+++ boost/archive/detail/basic_config.hpp	(working copy)
@@ -22,7 +22,6 @@
 
 #include <boost/config.hpp>
 
-#ifdef BOOST_HAS_DECLSPEC // 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 +29,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
+
 //
 // if BOOST_ARCHIVE_DECL isn't defined yet define it now:
 #ifndef BOOST_ARCHIVE_DECL
Index: boost/archive/detail/decl.hpp
===================================================================
--- boost/archive/detail/decl.hpp	(revision 63668)
+++ boost/archive/detail/decl.hpp	(working copy)
@@ -24,47 +24,45 @@
 #include <boost/config.hpp>
 #include <boost/preprocessor/facilities/empty.hpp>
 
-#if defined(BOOST_HAS_DECLSPEC)
-    #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
-            #endif
+#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
-            #if defined(__BORLANDC__)
-            #define BOOST_ARCHIVE_DECL(T) T __import
-            #else
-            #define BOOST_ARCHIVE_DECL(T) __declspec(dllimport) T
-            #endif
+        #define BOOST_ARCHIVE_DECL(T) BOOST_SYMBOL_EXPORT T
+        #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T)  BOOST_SYMBOL_EXPORT T
         #endif
-        #if defined(BOOST_WARCHIVE_SOURCE)
-            #if defined(__BORLANDC__)
-            #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
-            #endif
+    #else
+        #if defined(__BORLANDC__)
+        #define BOOST_ARCHIVE_DECL(T) T __import
         #else
-            #if defined(__BORLANDC__)
-            #define BOOST_WARCHIVE_DECL(T) T __import
-            #else
-            #define BOOST_WARCHIVE_DECL(T) __declspec(dllimport) T
-            #endif
+        #define BOOST_ARCHIVE_DECL(T) BOOST_SYMBOL_IMPORT T
         #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
-            #endif
+    #endif
+    #if defined(BOOST_WARCHIVE_SOURCE)
+        #if defined(__BORLANDC__)
+        #define BOOST_WARCHIVE_DECL(T) T __export
+        #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __export
+        #else
+        #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) BOOST_SYMBOL_IMPORT T
+        #endif
     #endif
-#endif // BOOST_HAS_DECLSPEC
+    #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) BOOST_SYMBOL_IMPORT T
+        #endif
+    #endif
+#endif
 
 #if ! defined(BOOST_ARCHIVE_DECL)
     #define BOOST_ARCHIVE_DECL(T) T
Index: boost/archive/detail/interface_iarchive.hpp
===================================================================
--- boost/archive/detail/interface_iarchive.hpp	(revision 63668)
+++ 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 Archive>
 class interface_iarchive 
Index: boost/archive/detail/interface_oarchive.hpp
===================================================================
--- boost/archive/detail/interface_oarchive.hpp	(revision 63668)
+++ 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 Archive>
 class interface_oarchive 
Index: boost/archive/detail/basic_pointer_iserializer.hpp
===================================================================
--- boost/archive/detail/basic_pointer_iserializer.hpp	(revision 63668)
+++ 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: boost/archive/detail/basic_iserializer.hpp
===================================================================
--- boost/archive/detail/basic_iserializer.hpp	(revision 63668)
+++ 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: boost/archive/polymorphic_iarchive.hpp
===================================================================
--- boost/archive/polymorphic_iarchive.hpp	(revision 63668)
+++ 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: boost/archive/polymorphic_oarchive.hpp
===================================================================
--- boost/archive/polymorphic_oarchive.hpp	(revision 63668)
+++ 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: boost/serialization/config.hpp
===================================================================
--- boost/serialization/config.hpp	(revision 63668)
+++ boost/serialization/config.hpp	(working copy)
@@ -28,7 +28,6 @@
     #undef BOOST_SERIALIZATION_DECL
 #endif
 
-#ifdef BOOST_HAS_DECLSPEC // 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
@@ -42,17 +41,16 @@
         #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
 
 // if BOOST_SERIALIZATION_DECL isn't defined yet define it now:
 #ifndef BOOST_SERIALIZATION_DECL
Index: libs/serialization/src/shared_ptr_helper.cpp
===================================================================
--- libs/serialization/src/shared_ptr_helper.cpp	(revision 63668)
+++ libs/serialization/src/shared_ptr_helper.cpp	(working copy)
@@ -19,6 +19,7 @@
 #include <cstddef> // NULL
 
 #define BOOST_ARCHIVE_SOURCE
+#define BOOST_SERIALIZATION_SOURCE
 
 #include <boost/serialization/throw_exception.hpp>
 #include <boost/serialization/void_cast.hpp>
Index: libs/serialization/src/basic_serializer_map.cpp
===================================================================
--- libs/serialization/src/basic_serializer_map.cpp	(revision 63668)
+++ libs/serialization/src/basic_serializer_map.cpp	(working copy)
@@ -16,6 +16,7 @@
 #include <utility>
 
 #define BOOST_ARCHIVE_SOURCE
+#define BOOST_SERIALIZATION_SOURCE
 #include <boost/archive/archive_exception.hpp>
 #include <boost/serialization/throw_exception.hpp>
 
