I apologize for not replying to this sooner, but I happened to have some additional experience with Boost and Cray C++ that reminded me I need to follow-up on this.
 
I'm able to build all of Boost on Cray C++ with quite a few different versions of the Cray C++ compiler with the Exceptions of the "log" (new in 1.54) and "wave" modules (template expansions eventually crash the compiler).  I have shared some suggested diff's on this list for the cray.jam file as well as posted "bugs" for the cray and pgi compilers.
 
The issue you've encountered is that while the Cray C++ compiler supports some of the GNU extensions (enough when you use the -h gnu option that it does define the __GNUC__ compiler macro) it doesn't honor all of them.  Recommndations I've seen online is to use gcc to compile the relevant "cpp" file into assembler and then finish the compile with the Cray C++ compiler.
 
Personally, I didn't feel like hancking these steps into a .jam file and instead elected to modify two files:
 
--- boost_1_54_0/boost/atomic/detail/platform.hpp       2012-12-15 07:24:01.000000000 -0600
+++ boost_1_54_0.new/boost/atomic/detail/platform.hpp   2013-08-05 16:20:54.959156540 -0500
@@ -15,7 +15,11 @@
 #pragma once
 #endif
-#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+#if defined (__CRAYXE) || defined (__CRAYXT)
+
+    #include <boost/atomic/detail/base.hpp>
+
+#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
     #include <boost/atomic/detail/gcc-x86.hpp>
--- boost_1_54_0/boost/asio/detail/fenced_block.hpp     2013-05-20 07:32:20.000000000 -0500
+++ boost_1_54_0.new/boost/asio/detail/fenced_block.hpp 2013-08-05 16:33:19.375156111 -0500
@@ -29,6 +29,8 @@
 # include <boost/asio/detail/gcc_arm_fenced_block.hpp>
 #elif defined(__GNUC__) && (defined(__hppa) || defined(__hppa__))
 # include <boost/asio/detail/gcc_hppa_fenced_block.hpp>
+#elif defined(__CRAYXT) || defined(__CRAYXE)
+# include <boost/asio/detail/gcc_sync_fenced_block.hpp>
 #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
 # include <boost/asio/detail/gcc_x86_fenced_block.hpp>
 #elif defined(__GNUC__) \
@@ -58,6 +60,8 @@
 typedef gcc_arm_fenced_block fenced_block;
 #elif defined(__GNUC__) && (defined(__hppa) || defined(__hppa__))
 typedef gcc_hppa_fenced_block fenced_block;
+#elif defined(__CRAYXT) || defined(__CRAYXE)
+typedef gcc_sync_fenced_block fenced_block;
 #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
 typedef gcc_x86_fenced_block fenced_block;
 #elif defined(__GNUC__) \
Which causes boost to choose the "less-optimized" implementation (but one that should work).  The platform.hpp change, in particuliar, allows the thread library to compile.
 
 
-Alan
 
 
On Tue, Jul 16, 2013 at 11:00 AM, <boost-build-request@lists.boost.org> wrote:
 
Noel >> We use Boost with Cray, do you have a specific question or issue?
 
 I am using the latest module 8.2. Boost itself compile ok.
However my application, which pulls in some of the boost
asio headers does not compile.
 
get the following errors/warnings:
 
CC-1121 crayc++: ERROR File =
/home/users/p01869/boost_1_53_0/boost/asio/detail/gcc_x86_fenced_block.hpp,
Line = 58
  The asm constraint letter 'r' is unknown.
 
          "=r"(r), "=m"(m) :
          ^
 
CC-1359 crayc++: WARNING File =
/home/users/p01869/boost_1_53_0/boost/asio/detail/gcc_x86_fenced_block.hpp,
Line = 56
  The "asm" construct is ignored.
 
      __asm__ __volatile__ (
 
 
This seemed strange, because I am using cray C++ but the files refers to gcc
however on closer inspection its uses
 
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
 
So I assume its because 'defined(__x86_64__)' is valid.
 
Any way I have no clue, how to fix it, and may have to resort to intel/gnu
compilers ?
 
Best regards
Avi
 
-- 
alan@madllama.net http://humbleville.blogspot.com