Try using asm-based fenced block for pathscale.
diff --git a/asio/include/asio/detail/fenced_block.hpp b/asio/include/asio/detail/fenced_block.hpp index 6c69f12..60198bc 100644 --- a/asio/include/asio/detail/fenced_block.hpp +++ b/asio/include/asio/detail/fenced_block.hpp
@@ -30,7 +30,7 @@ #elif defined(__GNUC__) \ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) + && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) # include "asio/detail/gcc_fenced_block.hpp" #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) # include "asio/detail/gcc_x86_fenced_block.hpp" @@ -52,7 +52,7 @@ #elif defined(__GNUC__) \ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) + && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) typedef gcc_fenced_block fenced_block; #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) typedef gcc_x86_fenced_block fenced_block;
diff --git a/asio/include/asio/detail/gcc_fenced_block.hpp b/asio/include/asio/detail/gcc_fenced_block.hpp index be44945..23303fb 100644 --- a/asio/include/asio/detail/gcc_fenced_block.hpp +++ b/asio/include/asio/detail/gcc_fenced_block.hpp
@@ -24,7 +24,7 @@ #if defined(__GNUC__) \ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) + && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) namespace asio { namespace detail { @@ -56,7 +56,7 @@ #endif // defined(__GNUC__) // && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) // && !defined(__INTEL_COMPILER) && !defined(__ICL) - // && !defined(__ICC) && !defined(__ECC) + // && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) #include "asio/detail/pop_options.hpp"