diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 738e8a0e35..878e62db5c 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -133,6 +133,10 @@ class Boost(Package): # Patch fix from https://svn.boost.org/trac/boost/ticket/10125 patch('boost_10125.patch', when='@1.55.0%gcc@5.0:5.9') + # Patch fix for IBM XL compiler + patch('xl_1_62_0_le.patch', when='@1.62.0%xl_r') + patch('xl_1_62_0_le.patch', when='@1.62.0%xl') + def url_for_version(self, version): """ Handle Boost's weird URLs, @@ -149,7 +153,9 @@ def determine_toolset(self, spec): toolsets = {'g++': 'gcc', 'icpc': 'intel', - 'clang++': 'clang'} + 'clang++': 'clang', + 'xlc++': 'xlcpp', + 'xlc++_r': 'xlcpp'} if spec.satisfies('@1.47:'): toolsets['icpc'] += '-linux' diff --git a/var/spack/repos/builtin/packages/boost/xl_1_62_0_le.patch b/var/spack/repos/builtin/packages/boost/xl_1_62_0_le.patch new file mode 100644 index 0000000000..fd0eba345b --- /dev/null +++ b/var/spack/repos/builtin/packages/boost/xl_1_62_0_le.patch @@ -0,0 +1,787 @@ +diff -uNr boost_1_62_0/boost/accumulators/statistics/p_square_cumulative_distribution.hpp boost_1_62_0/boost/accumulators/statistics/p_square_cumulative_distribution.hpp +--- boost_1_62_0/boost/accumulators/statistics/p_square_cumulative_distribution.hpp 2015-03-23 13:17:14.000000000 -0400 ++++ boost_1_62_0/boost/accumulators/statistics/p_square_cumulative_distribution.hpp 2016-01-08 13:29:52.612408601 -0500 +@@ -10,7 +10,7 @@ + + #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) + # pragma message ("Warning: This header is deprecated. Please use: boost/accumulators/statistics/p_square_cumul_dist.hpp") +-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) ++#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) && !defined(__ibmxl__) + # warning "This header is deprecated. Please use: boost/accumulators/statistics/p_square_cumul_dist.hpp" + #endif + +diff -uNr boost_1_62_0/boost/accumulators/statistics/weighted_p_square_cumulative_distribution.hpp boost_1_62_0/boost/accumulators/statistics/weighted_p_square_cumulative_distribution.hpp +--- boost_1_62_0/boost/accumulators/statistics/weighted_p_square_cumulative_distribution.hpp 2015-03-23 13:17:14.000000000 -0400 ++++ boost_1_62_0/boost/accumulators/statistics/weighted_p_square_cumulative_distribution.hpp 2016-01-08 13:29:52.649942984 -0500 +@@ -10,7 +10,7 @@ + + #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) + # pragma message ("Warning: This header is deprecated. Please use: boost/accumulators/statistics/weighted_p_square_cumul_dist.hpp") +-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) ++#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) && !defined(__ibmxl__) + # warning "This header is deprecated. Please use: boost/accumulators/statistics/weighted_p_square_cumul_dist.hpp" + #endif + +diff -uNr boost_1_62_0/boost/asio/detail/pop_options.hpp boost_1_62_0/boost/asio/detail/pop_options.hpp +--- boost_1_62_0/boost/asio/detail/pop_options.hpp 2015-03-23 16:24:12.000000000 -0400 ++++ boost_1_62_0/boost/asio/detail/pop_options.hpp 2016-01-08 13:29:52.725151630 -0500 +@@ -107,7 +107,7 @@ + + // MPW MrCpp or SCpp + +-#elif defined(__IBMCPP__) ++#elif defined(__IBMCPP__) && !defined(__ibmxl__) + + // IBM Visual Age + +diff -uNr boost_1_62_0/boost/asio/detail/push_options.hpp boost_1_62_0/boost/asio/detail/push_options.hpp +--- boost_1_62_0/boost/asio/detail/push_options.hpp 2015-03-23 16:24:12.000000000 -0400 ++++ boost_1_62_0/boost/asio/detail/push_options.hpp 2016-01-08 13:29:52.779979004 -0500 +@@ -114,7 +114,7 @@ + + // MPW MrCpp or SCpp + +-#elif defined(__IBMCPP__) ++#elif defined(__IBMCPP__) && !defined(__ibmxl__) + + // IBM Visual Age + +diff -uNr boost_1_62_0/boost/asio/impl/src.cpp boost_1_62_0/boost/asio/impl/src.cpp +--- boost_1_62_0/boost/asio/impl/src.cpp 2015-03-23 16:24:12.000000000 -0400 ++++ boost_1_62_0/boost/asio/impl/src.cpp 2016-01-08 13:29:52.855662358 -0500 +@@ -17,7 +17,7 @@ + #elif defined(__GNUC__) \ + || defined(__HP_aCC) \ + || defined(__SUNPRO_CC) \ +- || defined(__IBMCPP__) ++ || defined(__IBMCPP__) && !defined(__ibmxl__) + # warning "This file is deprecated." + # warning "Please #include instead." + #endif +diff -uNr boost_1_62_0/boost/bind/bind.hpp boost_1_62_0/boost/bind/bind.hpp +--- boost_1_62_0/boost/bind/bind.hpp 2015-05-03 18:08:08.000000000 -0400 ++++ boost_1_62_0/boost/bind/bind.hpp 2016-01-08 13:29:52.921370966 -0500 +@@ -1970,7 +1970,7 @@ + typedef void type; + }; + +-#if !defined(__IBMCPP__) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION ++#if !(defined(__IBMCPP__) && !defined(__ibmxl__)) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION + + template< class R, class T > struct add_cref< R (T::*) () const, 1 > + { +diff -uNr boost_1_62_0/boost/config/requires_threads.hpp boost_1_62_0/boost/config/requires_threads.hpp +--- boost_1_62_0/boost/config/requires_threads.hpp 2015-08-04 07:44:49.000000000 -0400 ++++ boost_1_62_0/boost/config/requires_threads.hpp 2016-01-08 13:29:53.028994548 -0500 +@@ -70,7 +70,7 @@ + // HP aCC + # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" + +-#elif defined(__IBMCPP__) ++#elif defined(__IBMCPP__) && !defined(__ibmxl__) + // IBM Visual Age + # error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler" + +diff -uNr boost_1_62_0/boost/config/select_compiler_config.hpp boost_1_62_0/boost/config/select_compiler_config.hpp +--- boost_1_62_0/boost/config/select_compiler_config.hpp 2015-08-04 07:44:49.000000000 -0400 ++++ boost_1_62_0/boost/config/select_compiler_config.hpp 2016-01-08 13:29:53.495533933 -0500 +@@ -96,7 +96,7 @@ + // IBM XL C/C++ for Linux (Little Endian) + # define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp.hpp" + +-#elif defined(__IBMCPP__) ++#elif defined(__IBMCPP__) && !defined(__ibmxl__) + // IBM Visual Age or IBM XL C/C++ for Linux (Big Endian) + # define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp" + +diff -uNr boost_1_62_0/boost/config/select_platform_config.hpp boost_1_62_0/boost/config/select_platform_config.hpp +--- boost_1_62_0/boost/config/select_platform_config.hpp 2015-08-04 07:44:49.000000000 -0400 ++++ boost_1_62_0/boost/config/select_platform_config.hpp 2016-01-08 13:29:53.575187839 -0500 +@@ -53,7 +53,7 @@ + // MacOS + # define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp" + +-#elif defined(__IBMCPP__) || defined(_AIX) ++#elif (defined(__IBMCPP__) && !defined(__ibmxl__)) || defined(_AIX) + // IBM + # define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp" + +diff -uNr boost_1_62_0/boost/config/select_stdlib_config.hpp boost_1_62_0/boost/config/select_stdlib_config.hpp +--- boost_1_62_0/boost/config/select_stdlib_config.hpp 2015-08-04 07:44:49.000000000 -0400 ++++ boost_1_62_0/boost/config/select_stdlib_config.hpp 2016-01-08 13:29:53.626526177 -0500 +@@ -37,7 +37,7 @@ + // #include if they know whose std lib they are using. + #if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\ + && !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\ +- && !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\ ++ && !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !(defined(__IBMCPP__) && !defined(__ibmxl__) )\ + && !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER) + #include + #endif +@@ -66,7 +66,7 @@ + // MSL standard lib: + # define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp" + +-#elif defined(__IBMCPP__) ++#elif defined(__IBMCPP__) && !defined(__ibmxl__) + // take the default VACPP std lib + # define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp" + +@@ -74,7 +74,7 @@ + // Modena C++ standard library + # define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp" + +-#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) ++#elif (defined(_YVALS) && !(defined(__IBMCPP__) && !defined(__ibmxl__) )) || defined(_CPPLIB_VER) + // Dinkumware Library (this has to appear after any possible replacement libraries): + # define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp" + +diff -uNr boost_1_62_0/boost/core/explicit_operator_bool.hpp boost_1_62_0/boost/core/explicit_operator_bool.hpp +--- boost_1_62_0/boost/core/explicit_operator_bool.hpp 2015-07-20 05:32:52.000000000 -0400 ++++ boost_1_62_0/boost/core/explicit_operator_bool.hpp 2016-01-08 13:29:53.895509554 -0500 +@@ -78,7 +78,7 @@ + + namespace detail { + +-#if !defined(_MSC_VER) && !defined(__IBMCPP__) ++#if !defined(_MSC_VER) && !(defined(__IBMCPP__) && !defined(__ibmxl__)) + + struct unspecified_bool + { +diff -uNr boost_1_62_0/boost/cstdint.hpp boost_1_62_0/boost/cstdint.hpp +--- boost_1_62_0/boost/cstdint.hpp 2015-08-04 07:44:49.000000000 -0400 ++++ boost_1_62_0/boost/cstdint.hpp 2016-01-08 13:29:53.969672718 -0500 +@@ -54,7 +54,7 @@ + // this is triggered with GCC, because it defines __cplusplus < 199707L + # define BOOST_NO_INT64_T + # endif +-# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX) ++# elif defined(__FreeBSD__) || (defined(__IBMCPP__) && !defined(__ibmxl__))|| defined(_AIX) + # include + # else + # include +diff -uNr boost_1_62_0/boost/current_function.hpp boost_1_62_0/boost/current_function.hpp +--- boost_1_62_0/boost/current_function.hpp 2015-01-30 18:08:49.000000000 -0500 ++++ boost_1_62_0/boost/current_function.hpp 2016-01-08 13:29:54.012897946 -0500 +@@ -40,7 +40,7 @@ + + # define BOOST_CURRENT_FUNCTION __FUNCSIG__ + +-#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500)) ++#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && !defined(__ibmxl__) && (__IBMCPP__ >= 500)) + + # define BOOST_CURRENT_FUNCTION __FUNCTION__ + +diff -uNr boost_1_62_0/boost/detail/container_fwd.hpp boost_1_62_0/boost/detail/container_fwd.hpp +--- boost_1_62_0/boost/detail/container_fwd.hpp 2015-04-01 11:49:11.000000000 -0400 ++++ boost_1_62_0/boost/detail/container_fwd.hpp 2016-01-08 13:29:54.062758504 -0500 +@@ -70,12 +70,12 @@ + # elif defined(__MSL_CPP__) + // MSL standard lib: + # define BOOST_DETAIL_NO_CONTAINER_FWD +-# elif defined(__IBMCPP__) ++# elif defined(__IBMCPP__) && !defined(__ibmxl__) + // The default VACPP std lib, forward declaration seems to be fine. + # elif defined(MSIPL_COMPILE_H) + // Modena C++ standard library + # define BOOST_DETAIL_NO_CONTAINER_FWD +-# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) ++# elif (defined(_YVALS) && !(defined(__IBMCPP__) && !defined(__ibmxl__))) || defined(_CPPLIB_VER) + // Dinkumware Library (this has to appear after any possible replacement + // libraries) + # else +diff -uNr boost_1_62_0/boost/detail/workaround.hpp boost_1_62_0/boost/detail/workaround.hpp +--- boost_1_62_0/boost/detail/workaround.hpp 2015-08-04 07:44:49.000000000 -0400 ++++ boost_1_62_0/boost/detail/workaround.hpp 2016-01-09 13:56:47.218685439 -0500 +@@ -85,7 +85,7 @@ + #else + #define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0 + #endif +-#ifndef __IBMCPP__ ++#if !defined(__IBMCPP__) || defined(__ibmxl__) + #define __IBMCPP___WORKAROUND_GUARD 1 + #else + #define __IBMCPP___WORKAROUND_GUARD 0 +diff -uNr boost_1_62_0/boost/foreach.hpp boost_1_62_0/boost/foreach.hpp +--- boost_1_62_0/boost/foreach.hpp 2015-03-04 15:36:38.000000000 -0500 ++++ boost_1_62_0/boost/foreach.hpp 2016-01-09 13:58:39.495427757 -0500 +@@ -55,7 +55,7 @@ + || BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ + || BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1400)) \ + || (BOOST_WORKAROUND(__GNUC__, == 3) && (__GNUC_MINOR__ <= 3) && defined(__APPLE_CC__)) \ +- || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \ ++ || (BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) && (__IBMCPP__ < 1300)) \ + || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3206)) \ + || BOOST_WORKAROUND(__SUNPRO_CC, >= 0x5100) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) +diff -uNr boost_1_62_0/boost/functional/hash/detail/float_functions.hpp boost_1_62_0/boost/functional/hash/detail/float_functions.hpp +--- boost_1_62_0/boost/functional/hash/detail/float_functions.hpp 2015-01-24 09:37:21.000000000 -0500 ++++ boost_1_62_0/boost/functional/hash/detail/float_functions.hpp 2016-01-08 13:29:54.116374393 -0500 +@@ -47,7 +47,7 @@ + #elif defined(__MSL_CPP__) + // MSL standard lib: + # define BOOST_HASH_CONFORMANT_FLOATS 0 +-#elif defined(__IBMCPP__) ++#elif defined(__IBMCPP__) && !defined(__ibmxl__) + // VACPP std lib (probably conformant for much earlier version). + # if __IBMCPP__ >= 1210 + # define BOOST_HASH_CONFORMANT_FLOATS 1 +@@ -57,7 +57,7 @@ + #elif defined(MSIPL_COMPILE_H) + // Modena C++ standard library + # define BOOST_HASH_CONFORMANT_FLOATS 0 +-#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) ++#elif (defined(_YVALS) && !(defined(__IBMCPP__) && !defined(__ibmxl__))) || defined(_CPPLIB_VER) + // Dinkumware Library (this has to appear after any possible replacement libraries): + # if _CPPLIB_VER >= 405 + # define BOOST_HASH_CONFORMANT_FLOATS 1 +diff -uNr boost_1_62_0/boost/graph/edmunds_karp_max_flow.hpp boost_1_62_0/boost/graph/edmunds_karp_max_flow.hpp +--- boost_1_62_0/boost/graph/edmunds_karp_max_flow.hpp 2014-08-03 15:46:30.000000000 -0400 ++++ boost_1_62_0/boost/graph/edmunds_karp_max_flow.hpp 2016-01-08 13:29:54.165330185 -0500 +@@ -10,7 +10,7 @@ + + #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) + # pragma message ("Warning: This header is deprecated. Please use: boost/graph/edmonds_karp_max_flow.hpp") +-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) ++#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || (defined(__IBMCPP__) && !defined(__ibmxl__)) + # warning "This header is deprecated. Please use: boost/graph/edmonds_karp_max_flow.hpp" + #endif + +diff -uNr boost_1_62_0/boost/intrusive/detail/parent_from_member.hpp boost_1_62_0/boost/intrusive/detail/parent_from_member.hpp +--- boost_1_62_0/boost/intrusive/detail/parent_from_member.hpp 2015-07-21 17:39:18.000000000 -0400 ++++ boost_1_62_0/boost/intrusive/detail/parent_from_member.hpp 2016-01-08 13:29:54.266801426 -0500 +@@ -71,7 +71,7 @@ + + //This works with gcc, msvc, ac++, ibmcpp + #elif defined(__GNUC__) || defined(__HP_aCC) || defined(BOOST_INTEL) || \ +- defined(__IBMCPP__) || defined(__DECCXX) ++ defined(__IBMCPP__) && !defined(__ibmxl__) || defined(__DECCXX) + const Parent * const parent = 0; + const char *const member = static_cast(static_cast(&(parent->*ptr_to_member))); + return std::ptrdiff_t(member - static_cast(static_cast(parent))); +diff -uNr boost_1_62_0/boost/iostreams/detail/add_facet.hpp boost_1_62_0/boost/iostreams/detail/add_facet.hpp +--- boost_1_62_0/boost/iostreams/detail/add_facet.hpp 2015-01-25 14:33:40.000000000 -0500 ++++ boost_1_62_0/boost/iostreams/detail/add_facet.hpp 2016-01-08 13:29:54.290652933 -0500 +@@ -23,7 +23,7 @@ + #if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && \ + defined(_STLP_NO_OWN_IOSTREAMS) \ + /**/ +-# if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) ++# if (defined(_YVALS) && !(defined(__IBMCPP__) && !defined(__ibmxl__))) || defined(_CPPLIB_VER) + # define BOOST_IOSTREMS_STLPORT_WITH_OLD_DINKUMWARE + # endif + #endif +diff -uNr boost_1_62_0/boost/iostreams/positioning.hpp boost_1_62_0/boost/iostreams/positioning.hpp +--- boost_1_62_0/boost/iostreams/positioning.hpp 2015-01-25 14:33:40.000000000 -0500 ++++ boost_1_62_0/boost/iostreams/positioning.hpp 2016-01-08 13:29:54.321832608 -0500 +@@ -82,7 +82,7 @@ + // Converts a std::fpos_t to a stream_offset + inline stream_offset fpos_t_to_offset(std::fpos_t pos) + { +-# if defined(_POSIX_) || (_INTEGRAL_MAX_BITS >= 64) || defined(__IBMCPP__) ++# if defined(_POSIX_) || (_INTEGRAL_MAX_BITS >= 64) || defined(__IBMCPP__) && !defined(__ibmxl__) + return pos; + # else + return _FPOSOFF(pos); +@@ -92,7 +92,7 @@ + // Extracts the member _Fpos from a std::fpos + inline std::fpos_t streampos_to_fpos_t(std::streampos pos) + { +-# if defined (_CPPLIB_VER) || defined(__IBMCPP__) ++# if defined (_CPPLIB_VER) || defined(__IBMCPP__) && !defined(__ibmxl__) + return pos.seekpos(); + # else + return pos.get_fpos_t(); +diff -uNr boost_1_62_0/boost/math/tools/config.hpp boost_1_62_0/boost/math/tools/config.hpp +--- boost_1_62_0/boost/math/tools/config.hpp 2015-05-05 08:32:10.000000000 -0400 ++++ boost_1_62_0/boost/math/tools/config.hpp 2016-01-08 13:29:54.360466863 -0500 +@@ -43,7 +43,7 @@ + # define BOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM) + # include + #endif +-#ifdef __IBMCPP__ ++#if defined(__IBMCPP__) && !defined(__ibmxl__) + // + // For reasons I don't unserstand, the tests with IMB's compiler all + // pass at long double precision, but fail with real_concept, those tests +@@ -98,7 +98,7 @@ + # define BOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM) + #endif + +-#ifdef __IBMCPP__ ++#if defined(__IBMCPP__) && !defined(__ibmxl__) + # define BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS + #endif + +@@ -336,7 +336,7 @@ + # endif + #endif + +-#if ((defined(__linux__) && !defined(__UCLIBC__) && !defined(BOOST_MATH_HAVE_FIXED_GLIBC)) || defined(__QNX__) || defined(__IBMCPP__)) && !defined(BOOST_NO_FENV_H) ++#if ((defined(__linux__) && !defined(__UCLIBC__) && !defined(BOOST_MATH_HAVE_FIXED_GLIBC)) || defined(__QNX__) || (defined(__IBMCPP__) && !defined(__ibmxl__))) && !defined(BOOST_NO_FENV_H) + // + // This code was introduced in response to this glibc bug: http://sourceware.org/bugzilla/show_bug.cgi?id=2445 + // Basically powl and expl can return garbage when the result is small and certain exception flags are set +diff -uNr boost_1_62_0/boost/math/tools/tuple.hpp boost_1_62_0/boost/math/tools/tuple.hpp +--- boost_1_62_0/boost/math/tools/tuple.hpp 2015-05-05 08:32:10.000000000 -0400 ++++ boost_1_62_0/boost/math/tools/tuple.hpp 2016-01-08 13:29:54.575224775 -0500 +@@ -27,7 +27,7 @@ + + }} + +-#elif (defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)) || defined(__IBMCPP__) ++#elif (defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)) || defined(__IBMCPP__) && !defined(__ibmxl__) + + #include + #include +diff -uNr boost_1_62_0/boost/preprocessor/config/config.hpp boost_1_62_0/boost/preprocessor/config/config.hpp +--- boost_1_62_0/boost/preprocessor/config/config.hpp 2015-07-17 07:45:08.000000000 -0400 ++++ boost_1_62_0/boost/preprocessor/config/config.hpp 2016-01-10 01:51:46.139445697 -0500 +@@ -43,7 +43,7 @@ + # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC()) + # elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581 + # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) +-# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) ++# elif defined(__BORLANDC__) || defined(__IBMC__) && !defined(__ibmxl__) || defined(__IBMCPP__) && !defined(__ibmxl__) || defined(__SUNPRO_CC) + # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC()) + # elif defined(_MSC_VER) && !defined(__clang__) + # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) +@@ -73,7 +73,7 @@ + # define BOOST_PP_VARIADICS_MSVC 0 + # if !defined BOOST_PP_VARIADICS + # /* variadic support explicitly disabled for all untested compilers */ +-# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || ( defined __SUNPRO_CC && __SUNPRO_CC < 0x5120 ) || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI ++# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || ( defined __SUNPRO_CC && __SUNPRO_CC < 0x5120 ) || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || (defined __IBMCPP__ && !defined __ibmxl__ ) || defined __PGI + # define BOOST_PP_VARIADICS 0 + # /* VC++ (C/C++) */ + # elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__ +@@ -92,7 +92,7 @@ + # elif !BOOST_PP_VARIADICS + 1 < 2 + # undef BOOST_PP_VARIADICS + # define BOOST_PP_VARIADICS 1 +-# if defined _MSC_VER && _MSC_VER >= 1400 && (defined(__INTELLISENSE__) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)) ++# if defined _MSC_VER && _MSC_VER >= 1400 && (defined(__INTELLISENSE__) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || (defined __IBMCPP__ && !defined __ibmxl__ ) || defined __PGI)) + # undef BOOST_PP_VARIADICS_MSVC + # define BOOST_PP_VARIADICS_MSVC 1 + # endif +diff -uNr boost_1_62_0/boost/preprocessor/seq/elem.hpp boost_1_62_0/boost/preprocessor/seq/elem.hpp +--- boost_1_62_0/boost/preprocessor/seq/elem.hpp 2015-07-17 07:45:08.000000000 -0400 ++++ boost_1_62_0/boost/preprocessor/seq/elem.hpp 2016-01-10 01:53:11.941880189 -0500 +@@ -35,7 +35,7 @@ + # define BOOST_PP_SEQ_ELEM_III(im) BOOST_PP_SEQ_ELEM_IV(im) + # define BOOST_PP_SEQ_ELEM_IV(x, _) x + # else +-# if defined(__IBMC__) || defined(__IBMCPP__) ++# if defined(__IBMC__) && !defined(__ibmxl__) || defined(__IBMCPP__) && !defined(__ibmxl__) + # define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM_ ## i, seq)) + # else + # define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq) +diff -uNr boost_1_62_0/boost/preprocessor/seq/size.hpp boost_1_62_0/boost/preprocessor/seq/size.hpp +--- boost_1_62_0/boost/preprocessor/seq/size.hpp 2015-07-17 07:45:08.000000000 -0400 ++++ boost_1_62_0/boost/preprocessor/seq/size.hpp 2016-01-10 01:53:59.736320846 -0500 +@@ -22,7 +22,7 @@ + # elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() || BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() + # define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I(seq) + # define BOOST_PP_SEQ_SIZE_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq) +-# elif defined(__IBMC__) || defined(__IBMCPP__) ++# elif defined(__IBMC__) && !defined(__ibmxl__) || defined(__IBMCPP__) && !defined(__ibmxl__) + # define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_0, seq)) + # else + # define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq) +diff -uNr boost_1_62_0/boost/regex/icu.hpp boost_1_62_0/boost/regex/icu.hpp +--- boost_1_62_0/boost/regex/icu.hpp 2015-02-14 08:22:25.000000000 -0500 ++++ boost_1_62_0/boost/regex/icu.hpp 2016-01-08 13:29:54.840564509 -0500 +@@ -243,7 +243,7 @@ + // + namespace re_detail{ + +-#if !defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__) ++#if !defined(BOOST_NO_MEMBER_TEMPLATES) && !(defined(__IBMCPP__) && !defined(__ibmxl__)) + template + inline u32regex do_make_u32regex(InputIterator i, + InputIterator j, +diff -uNr boost_1_62_0/boost/regex/v4/cpp_regex_traits.hpp boost_1_62_0/boost/regex/v4/cpp_regex_traits.hpp +--- boost_1_62_0/boost/regex/v4/cpp_regex_traits.hpp 2015-02-14 08:22:25.000000000 -0500 ++++ boost_1_62_0/boost/regex/v4/cpp_regex_traits.hpp 2016-01-08 13:29:54.936872839 -0500 +@@ -275,7 +275,7 @@ + // we need to start by initialising our syntax map so we know which + // character is used for which purpose: + #ifndef BOOST_NO_STD_MESSAGES +-#ifndef __IBMCPP__ ++#if !defined(__IBMCPP__) || defined(__ibmxl__) + typename std::messages::catalog cat = static_cast::catalog>(-1); + #else + typename std::messages::catalog cat = reinterpret_cast::catalog>(-1); +@@ -702,7 +702,7 @@ + void cpp_regex_traits_implementation::init() + { + #ifndef BOOST_NO_STD_MESSAGES +-#ifndef __IBMCPP__ ++#if !defined(__IBMCPP__) || defined(__ibmxl__) + typename std::messages::catalog cat = static_cast::catalog>(-1); + #else + typename std::messages::catalog cat = reinterpret_cast::catalog>(-1); +diff -uNr boost_1_62_0/boost/serialization/force_include.hpp boost_1_62_0/boost/serialization/force_include.hpp +--- boost_1_62_0/boost/serialization/force_include.hpp 2015-05-23 14:51:06.000000000 -0400 ++++ boost_1_62_0/boost/serialization/force_include.hpp 2016-01-08 13:29:55.027329880 -0500 +@@ -37,7 +37,7 @@ + # define BOOST_DLLEXPORT __declspec(dllexport) + # elif defined(__GNUC__) && (__GNUC__ >= 3) + # define BOOST_USED __attribute__ ((__used__)) +-# elif defined(__IBMCPP__) && (__IBMCPP__ >= 1110) ++# elif defined(__IBMCPP__) && !defined(__ibmxl__) && (__IBMCPP__ >= 1110) + # define BOOST_USED __attribute__ ((__used__)) + # elif defined(__INTEL_COMPILER) && (BOOST_INTEL_CXX_VERSION >= 800) + # define BOOST_USED __attribute__ ((__used__)) +diff -uNr boost_1_62_0/boost/signal.hpp boost_1_62_0/boost/signal.hpp +--- boost_1_62_0/boost/signal.hpp 2015-04-01 13:32:16.000000000 -0400 ++++ boost_1_62_0/boost/signal.hpp 2016-01-08 13:29:55.079443080 -0500 +@@ -13,7 +13,7 @@ + #ifndef BOOST_SIGNALS_NO_DEPRECATION_WARNING + # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) + # pragma message ("Warning: Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING.") +-# elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) ++# elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) && !defined(__ibmxl__) + # warning "Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING." + # endif + #endif +diff -uNr boost_1_62_0/boost/spirit.hpp boost_1_62_0/boost/spirit.hpp +--- boost_1_62_0/boost/spirit.hpp 2015-07-14 18:38:56.000000000 -0400 ++++ boost_1_62_0/boost/spirit.hpp 2016-01-08 13:29:55.145408036 -0500 +@@ -14,7 +14,7 @@ + #if BOOST_VERSION >= 103800 + #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__) + # pragma message ("Warning: This header is deprecated. Please use: boost/spirit/include/classic.hpp") +-#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) ++#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__) && !defined(__ibmxl__) + # warning "This header is deprecated. Please use: boost/spirit/include/classic.hpp" + #endif + #endif +diff -uNr boost_1_62_0/boost/thread/detail/platform.hpp boost_1_62_0/boost/thread/detail/platform.hpp +--- boost_1_62_0/boost/thread/detail/platform.hpp 2015-04-18 05:56:34.000000000 -0400 ++++ boost_1_62_0/boost/thread/detail/platform.hpp 2016-01-08 13:29:55.225161873 -0500 +@@ -37,7 +37,7 @@ + #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + # define BOOST_THREAD_MACOS + //# define BOOST_THREAD_WAIT_BUG boost::posix_time::microseconds(1000) +-#elif defined(__IBMCPP__) || defined(_AIX) ++#elif defined(__IBMCPP__) && !defined(__ibmxl__) || defined(_AIX) + # define BOOST_THREAD_AIX + #elif defined(__amigaos__) + # define BOOST_THREAD_AMIGAOS +diff -uNr boost_1_62_0/boost/tr1/detail/config.hpp boost_1_62_0/boost/tr1/detail/config.hpp +--- boost_1_62_0/boost/tr1/detail/config.hpp 2014-02-20 08:26:34.000000000 -0500 ++++ boost_1_62_0/boost/tr1/detail/config.hpp 2016-01-08 13:29:55.295115823 -0500 +@@ -10,7 +10,7 @@ + + #if (defined(__GNUC__) && !(defined(linux) || defined(__linux) || defined(__linux__))) \ + || (!defined(__FreeBSD__) && defined(__GNUC__)) \ +- || (!defined(_AIX) && defined(__IBMCPP__) && (__IBMCPP__ >= 800)) ++ || (!defined(_AIX) && defined(__IBMCPP__) && !defined(__ibmxl__) && (__IBMCPP__ >= 800)) + // Disable use of #include_next on Linux as typically we are installed in a + // directory that is searched *after* the std lib include path. + #if !defined(BOOST_HAS_INCLUDE_NEXT) +diff -uNr boost_1_62_0/boost/type_traits/extent.hpp boost_1_62_0/boost/type_traits/extent.hpp +--- boost_1_62_0/boost/type_traits/extent.hpp 2015-05-21 13:51:23.000000000 -0400 ++++ boost_1_62_0/boost/type_traits/extent.hpp 2016-01-08 13:29:55.455420729 -0500 +@@ -80,7 +80,7 @@ + BOOST_STATIC_CONSTANT(std::size_t, value = R); + }; + +-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) && !defined(__MWERKS__) ++#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !(defined(__IBMCPP__) && !defined(__ibmxl__)) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) && !defined(__MWERKS__) + template + struct extent_imp + { +diff -uNr boost_1_62_0/boost/type_traits/is_array.hpp boost_1_62_0/boost/type_traits/is_array.hpp +--- boost_1_62_0/boost/type_traits/is_array.hpp 2016-07-11 13:30:44.296134002 -0400 ++++ boost_1_62_0/boost/type_traits/is_array.hpp 2016-07-11 13:30:28.084752131 -0400 +@@ -28,7 +28,7 @@ + template struct is_array : public true_type{}; + template struct is_array : public true_type{}; + template struct is_array : public true_type{}; +-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) ++#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !(defined(__IBMCPP__) && !defined(__ibmxl__)) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) + template struct is_array : public true_type{}; + template struct is_array : public true_type{}; + template struct is_array : public true_type{}; +diff -uNr boost_1_62_0/boost/type_traits/is_convertible.hpp boost_1_62_0/boost/type_traits/is_convertible.hpp +--- boost_1_62_0/boost/type_traits/is_convertible.hpp 2015-05-21 13:51:23.000000000 -0400 ++++ boost_1_62_0/boost/type_traits/is_convertible.hpp 2016-01-08 13:29:55.605870032 -0500 +@@ -152,7 +152,7 @@ + }; + + #elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \ +- || defined(__IBMCPP__) || defined(__HP_aCC) ++ || defined(__IBMCPP__) && !defined(__ibmxl__) || defined(__HP_aCC) + // + // This is *almost* an ideal world implementation as it doesn't rely + // on undefined behaviour by passing UDT's through (...). +diff -uNr boost_1_62_0/boost/type_traits/rank.hpp boost_1_62_0/boost/type_traits/rank.hpp +--- boost_1_62_0/boost/type_traits/rank.hpp 2015-05-21 13:51:23.000000000 -0400 ++++ boost_1_62_0/boost/type_traits/rank.hpp 2016-01-08 13:29:55.675140771 -0500 +@@ -49,7 +49,7 @@ + BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); + }; + +-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) ++#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !(defined(__IBMCPP__) && !defined(__ibmxl__)) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) + template + struct rank_imp + { +diff -uNr boost_1_62_0/boost/type_traits/remove_all_extents.hpp boost_1_62_0/boost/type_traits/remove_all_extents.hpp +--- boost_1_62_0/boost/type_traits/remove_all_extents.hpp 2015-05-21 13:51:23.000000000 -0400 ++++ boost_1_62_0/boost/type_traits/remove_all_extents.hpp 2016-01-08 13:29:55.746149995 -0500 +@@ -22,7 +22,7 @@ + template struct remove_all_extents : public remove_all_extents{}; + template struct remove_all_extents : public remove_all_extents{}; + template struct remove_all_extents : public remove_all_extents{}; +-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) ++#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !(defined(__IBMCPP__) && !defined(__ibmxl__)) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) + template struct remove_all_extents : public remove_all_extents{}; + template struct remove_all_extents : public remove_all_extents{}; + template struct remove_all_extents : public remove_all_extents{}; +diff -uNr boost_1_62_0/boost/type_traits/remove_extent.hpp boost_1_62_0/boost/type_traits/remove_extent.hpp +--- boost_1_62_0/boost/type_traits/remove_extent.hpp 2015-05-21 13:51:23.000000000 -0400 ++++ boost_1_62_0/boost/type_traits/remove_extent.hpp 2016-01-10 02:18:53.967902075 -0500 +@@ -22,7 +22,7 @@ + template struct remove_extent { typedef T const type; }; + template struct remove_extent { typedef T volatile type; }; + template struct remove_extent { typedef T const volatile type; }; +-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) ++#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !(defined(__IBMCPP__) && !defined(__ibmxl__)) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) + template struct remove_extent { typedef T type; }; + template struct remove_extent { typedef T const type; }; + template struct remove_extent { typedef T volatile type; }; +diff -uNr boost_1_62_0/bootstrap.sh boost_1_62_0/bootstrap.sh +--- boost_1_62_0/bootstrap.sh 2015-08-11 10:00:14.000000000 -0400 ++++ boost_1_62_0/bootstrap.sh 2016-01-08 12:17:34.671934715 -0500 +@@ -195,7 +195,7 @@ + if test "x$TOOLSET" = x; then + guessed_toolset=`$my_dir/tools/build/src/engine/build.sh --guess-toolset` + case $guessed_toolset in +- acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp ) ++ acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp | xlcpp ) + TOOLSET=$guessed_toolset + ;; + +diff -uNr boost_1_62_0/libs/atomic/test/Jamfile.v2 boost_1_62_0/libs/atomic/test/Jamfile.v2 +--- boost_1_62_0/libs/atomic/test/Jamfile.v2 2015-01-25 10:50:58.000000000 -0500 ++++ boost_1_62_0/libs/atomic/test/Jamfile.v2 2016-01-08 12:23:33.758048088 -0500 +@@ -17,6 +17,7 @@ + windows:BOOST_USE_WINDOWS_H + windows:_WIN32_WINNT=0x0500 + gcc,windows:"-lkernel32" ++ xlcpp:"-latomic" + ; + + test-suite atomic +diff -uNr boost_1_62_0/libs/context/build/Jamfile.v2 boost_1_62_0/libs/context/build/Jamfile.v2 +--- boost_1_62_0/libs/context/build/Jamfile.v2 2015-06-29 11:08:22.000000000 -0400 ++++ boost_1_62_0/libs/context/build/Jamfile.v2 2016-01-08 12:24:40.614024908 -0500 +@@ -99,6 +99,11 @@ + cpp -x assembler-with-cpp "$(>)" | as --64 -o "$(<)" + } + ++actions gaspower64 ++{ ++ cpp -x assembler-with-cpp "$(>)" | as -a64 -o "$(<)" ++} ++ + actions gasx32 + { + cpp -x assembler-with-cpp "$(>)" | as --x32 -o "$(<)" +@@ -442,9 +447,9 @@ + # POWERPC_64 + # POWERPC_64/SYSV/ELF + alias asm_context_sources +- : [ make asm/make_ppc64_sysv_elf_gas.o : asm/make_ppc64_sysv_elf_gas.S : @gas64 ] +- [ make asm/jump_ppc64_sysv_elf_gas.o : asm/jump_ppc64_sysv_elf_gas.S : @gas64 ] +- [ make asm/ontop_ppc64_sysv_elf_gas.o : asm/ontop_ppc64_sysv_elf_gas.S : @gas64 ] ++ : [ make asm/make_ppc64_sysv_elf_gas.o : asm/make_ppc64_sysv_elf_gas.S : @gaspower64 ] ++ [ make asm/jump_ppc64_sysv_elf_gas.o : asm/jump_ppc64_sysv_elf_gas.S : @gaspower64 ] ++ [ make asm/ontop_ppc64_sysv_elf_gas.o : asm/ontop_ppc64_sysv_elf_gas.S : @gaspower64 ] + : sysv + 64 + power +diff -uNr boost_1_62_0/libs/foreach/test/Jamfile.v2 boost_1_62_0/libs/foreach/test/Jamfile.v2 +--- boost_1_62_0/libs/foreach/test/Jamfile.v2 2015-03-04 15:36:38.000000000 -0500 ++++ boost_1_62_0/libs/foreach/test/Jamfile.v2 2016-01-08 12:25:51.293898849 -0500 +@@ -8,9 +8,9 @@ + project : requirements msvc:on ; + + test-suite "foreach" +- : [ run stl_byval.cpp ] ++ : [ run stl_byval.cpp : : : xlcpp:-qalias=noansi ] + [ run stl_byref.cpp ] +- [ run stl_byval_r.cpp ] ++ [ run stl_byval_r.cpp : : : xlcpp:-qalias=noansi ] + [ run stl_byref_r.cpp ] + [ run array_byval.cpp ] + [ run array_byref.cpp ] +@@ -25,12 +25,12 @@ + [ run pair_byval_r.cpp ] + [ run pair_byref_r.cpp ] + [ run user_defined.cpp ] +- [ run call_once.cpp ] ++ [ run call_once.cpp : : : xlcpp:-qalias=noansi ] + [ run rvalue_const.cpp ] + [ run rvalue_nonconst.cpp ] + [ run rvalue_const_r.cpp ] + [ run rvalue_nonconst_r.cpp ] +- [ run dependent_type.cpp ] ++ [ run dependent_type.cpp : : : xlcpp:-qalias=noansi ] + [ run misc.cpp ] + [ compile noncopyable.cpp ] + ; +diff -uNr boost_1_62_0/libs/geometry/test/algorithms/set_operations/intersection/Jamfile.v2 boost_1_62_0/libs/geometry/test/algorithms/set_operations/intersection/Jamfile.v2 +--- boost_1_62_0/libs/geometry/test/algorithms/set_operations/intersection/Jamfile.v2 2015-08-03 08:51:49.000000000 -0400 ++++ boost_1_62_0/libs/geometry/test/algorithms/set_operations/intersection/Jamfile.v2 2016-01-08 12:29:08.081503553 -0500 +@@ -16,7 +16,7 @@ + + test-suite boost-geometry-algorithms-intersection + : +- [ run intersection.cpp : : : BOOST_GEOMETRY_TEST_ONLY_ONE_TYPE ++ [ run intersection.cpp : : : BOOST_GEOMETRY_TEST_ONLY_ONE_TYPE xlcpp:-qfloat=nomaf + : algorithms_intersection ] + [ run intersection_areal_areal_linear.cpp : : : : algorithms_intersection_areal_areal_linear ] + [ run intersection_linear_linear.cpp : : : : algorithms_intersection_linear_linear ] +diff -uNr boost_1_62_0/libs/lockfree/test/Jamfile.v2 boost_1_62_0/libs/lockfree/test/Jamfile.v2 +--- boost_1_62_0/libs/lockfree/test/Jamfile.v2 2015-06-11 12:00:57.000000000 -0400 ++++ boost_1_62_0/libs/lockfree/test/Jamfile.v2 2016-01-08 12:38:25.909320596 -0500 +@@ -29,6 +29,7 @@ + : # requirements + acc:-lrt + acc-pa_risc:-lrt ++ xlcpp:-latomic + windows,gcc:"-lole32 -loleaut32 -lpsapi -ladvapi32" + hpux,gcc:"-Wl,+as,mpas" + ../../thread/build//boost_thread/ +diff -uNr boost_1_62_0/libs/spirit/test/Jamfile boost_1_62_0/libs/spirit/test/Jamfile +--- boost_1_62_0/libs/spirit/test/Jamfile 2015-07-14 18:38:56.000000000 -0400 ++++ boost_1_62_0/libs/spirit/test/Jamfile 2016-01-08 12:52:18.540491314 -0500 +@@ -218,9 +218,9 @@ + [ run karma/sequence1.cpp : : : : karma_sequence1 ] + [ run karma/sequence2.cpp : : : : karma_sequence2 ] + [ run karma/stream.cpp : : : : karma_stream ] +- [ run karma/symbols1.cpp : : : : karma_symbols1 ] +- [ run karma/symbols2.cpp : : : : karma_symbols2 ] +- [ run karma/symbols3.cpp : : : : karma_symbols3 ] ++ [ run karma/symbols1.cpp : : : xlcpp:-qalias=noansi : karma_symbols1 ] ++ [ run karma/symbols2.cpp : : : xlcpp:-qalias=noansi : karma_symbols2 ] ++ [ run karma/symbols3.cpp : : : xlcpp:-qalias=noansi : karma_symbols3 ] + [ run karma/tricky_alignment.cpp : : : : karma_tricky_alignment ] + [ run karma/uint_radix.cpp : : : : karma_uint_radix ] + [ run karma/utree1.cpp : : : : karma_utree1 ] +diff -uNr boost_1_62_0/libs/test/test/Jamfile.v2 boost_1_62_0/libs/test/test/Jamfile.v2 +--- boost_1_62_0/libs/test/test/Jamfile.v2 2015-07-21 17:41:49.000000000 -0400 ++++ boost_1_62_0/libs/test/test/Jamfile.v2 2016-01-08 12:53:36.068217432 -0500 +@@ -47,6 +47,7 @@ + gcc:-Wno-variadic-macros + clang:-Wno-c99-extensions + clang:-Wno-variadic-macros ++ xlcpp:-std=c++11 + # gcc:--coverage + all + $(extra-options) +diff -uNr boost_1_62_0/libs/type_index/test/Jamfile.v2 boost_1_62_0/libs/type_index/test/Jamfile.v2 +--- boost_1_62_0/libs/type_index/test/Jamfile.v2 2015-07-30 16:00:41.000000000 -0400 ++++ boost_1_62_0/libs/type_index/test/Jamfile.v2 2016-01-08 12:54:28.968296112 -0500 +@@ -13,9 +13,9 @@ + + # Making own `nortti` that is link compatible. + # We explicitly define BOOST_NO_RTTI because it sometimes can not be detected by build system. +-nortti = gcc:"-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" clang:"-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" intel:"-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" darwin:"-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" msvc:/GR- ; ++nortti = gcc:"-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" clang:"-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" intel:"-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" darwin:"-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" msvc:/GR- xlcpp:"-qnortti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID" ; + +-norttidefines = gcc:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" clang:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" intel:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" darwin:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" msvc:-DBOOST_NO_RTTI ; ++norttidefines = gcc:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" clang:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" intel:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" darwin:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" msvc:-DBOOST_NO_RTTI xlcpp:"-DBOOST_NO_RTTI -DBOOST_NO_TYPEID" ; + + + # Making libraries that CANNOT work between rtti-on/rtti-off modules +diff -uNr boost_1_62_0/libs/utility/test/Jamfile.v2 boost_1_62_0/libs/utility/test/Jamfile.v2 +--- boost_1_62_0/libs/utility/test/Jamfile.v2 2015-02-27 01:26:11.000000000 -0500 ++++ boost_1_62_0/libs/utility/test/Jamfile.v2 2016-01-08 12:54:59.380260948 -0500 +@@ -33,7 +33,7 @@ + [ run string_view_test1.cpp unit_test_framework ] + [ run string_view_test2.cpp unit_test_framework ] + [ run string_view_test_io.cpp unit_test_framework ] +- [ run ../value_init_test.cpp ] ++ [ run ../value_init_test.cpp : : : xlcpp:-qalias=noansi ] + [ run ../value_init_workaround_test.cpp ] + [ run ../initialized_test.cpp ] + [ compile-fail ../value_init_test_fail1.cpp ] +diff -uNr boost_1_62_0/tools/build/src/engine/boehm_gc/os_dep.c boost_1_62_0/tools/build/src/engine/boehm_gc/os_dep.c +--- boost_1_62_0/tools/build/src/engine/boehm_gc/os_dep.c 2015-08-11 09:53:51.000000000 -0400 ++++ boost_1_62_0/tools/build/src/engine/boehm_gc/os_dep.c 2016-01-10 01:57:04.489001841 -0500 +@@ -503,7 +503,7 @@ + + # include + +-# if !defined(__IBMC__) && !defined(__WATCOMC__) /* e.g. EMX */ ++# if !(defined(__IBMC__) && !defined(__ibmxl__)) && !defined(__WATCOMC__) /* e.g. EMX */ + + struct exe_hdr { + unsigned short magic_number; +diff -uNr boost_1_62_0/tools/build/src/tools/xlcpp.jam boost_1_62_0/tools/build/src/tools/xlcpp.jam +--- boost_1_62_0/tools/build/src/tools/xlcpp.jam 2015-08-11 09:53:51.000000000 -0400 ++++ boost_1_62_0/tools/build/src/tools/xlcpp.jam 2016-01-20 15:09:00.897879191 -0500 +@@ -41,7 +41,7 @@ + + # Declare flags + flags xlcpp CFLAGS off : -qNOOPTimize ; +-flags xlcpp CFLAGS speed : ; ++flags xlcpp CFLAGS speed : ; + flags xlcpp CFLAGS space : -O2 -qcompact ; + + # Discretionary inlining (not recommended) +@@ -51,8 +51,8 @@ + flags xlcpp CFLAGS full : ; + + # Exception handling +-flags xlcpp C++FLAGS off : -qnoeh ; +-flags xlcpp C++FLAGS on : -qeh ; ++flags xlcpp C++FLAGS off : -fno-exceptions ; ++flags xlcpp C++FLAGS on : -fexceptions ; + + # Run-time Type Identification + flags xlcpp C++FLAGS off : -qnortti ; +@@ -108,6 +108,8 @@ + flags xlcpp HDRS ; + flags xlcpp STDHDRS ; + flags xlcpp.link OPTIONS ; ++flags xlcpp.link RPATH_LINK ; ++flags xlcpp.link RPATH ; + flags xlcpp ARFLAGS ; + + flags xlcpp LIBPATH ; +@@ -116,10 +118,10 @@ + flags xlcpp FINDLIBS ; + + # Select the compiler name according to the threading model. +-flags xlcpp VA_C_COMPILER single : xlc ; +-flags xlcpp VA_C_COMPILER multi : xlc ; +-flags xlcpp VA_CXX_COMPILER single : xlC ; +-flags xlcpp VA_CXX_COMPILER multi : xlC ; ++flags xlcpp VA_C_COMPILER single : xlc ; ++flags xlcpp VA_C_COMPILER multi : xlc_r ; ++flags xlcpp VA_CXX_COMPILER single : xlC ; ++flags xlcpp VA_CXX_COMPILER multi : xlC_r ; + + SPACE = " " ; + +@@ -127,12 +129,12 @@ + + actions xlcpp.link bind NEEDLIBS + { +- $(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) ++ $(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -Wl,-R$(SPACE)-Wl,"$(RPATH)" -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) + } + + actions xlcpp.link.dll bind NEEDLIBS + { +- xlC -G $(LINKFLAGS) -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) ++ $(VA_CXX_COMPILER) -G $(LINKFLAGS) -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) + } + + actions xlcpp.compile.c