diff --git a/include/boost/system/config.hpp b/include/boost/system/config.hpp
index 0b19da8..728bd81 100644
--- a/include/boost/system/config.hpp
+++ b/include/boost/system/config.hpp
@@ -28,6 +28,23 @@
// This header implements separate compilation features as described in
// http://www.boost.org/more/separate_compilation.html
+// normalize macros ------------------------------------------------------------------//
+
+#if !defined(BOOST_SYSTEM_DYN_LINK) && !defined(BOOST_SYSTEM_STATIC_LINK) \
+ && !defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_ALL_STATIC_LINK)
+# error Must define BOOST_ALL_DYN_LINK, BOOST_ALL_DYN_LINK, BOOST_SYSTEM_DYN_LINK, or BOOST_SYSTEM_STATIC_LINK
+#endif
+
+#if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_SYSTEM_DYN_LINK)
+# define BOOST_SYSTEM_DYN_LINK
+#elif defined(BOOST_ALL_STATIC_LINK) && !defined(BOOST_SYSTEM_STATIC_LINK)
+# define BOOST_SYSTEM_STATIC_LINK
+#endif
+
+#if defined(BOOST_SYSTEM_DYN_LINK) && defined(BOOST_SYSTEM_STATIC_LINK)
+# error Must not define both BOOST_SYSTEM_DYN_LINK and BOOST_SYSTEM_STATIC_LINK
+#endif
+
// enable dynamic or static linking as requested --------------------------------------//
#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK)
diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
index 043a36f..1ab7442 100644
--- a/test/Jamfile.v2
+++ b/test/Jamfile.v2
@@ -16,6 +16,7 @@ project
lib throw_test
: throw_test.cpp
: shared:BOOST_SYSTEM_DYN_LINK=1
+ static:BOOST_SYSTEM_STATIC_LINK=1
;