Provide support for the Cray C++ compiler. The Cray compiler defines __GNUC__

and generally supports gnu extensions to C and C++.  It does not, however, support
inline assembly.  The changes here are to avoid inline assembly when _CRAYC is asserted
in the preprocessor.
This commit is contained in:
Richard Dale
2014-05-20 13:14:53 -05:00
parent 664739f824
commit ec7b1726a6
2 changed files with 2 additions and 2 deletions

View File

@@ -93,7 +93,7 @@ inline boost::uint32_t atomic_cas32
} //namespace interprocess{
} //namespace boost{
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) && !defined(_CRAYC)
namespace boost {
namespace interprocess {

View File

@@ -37,7 +37,7 @@ extern "C" void _mm_pause();
#define BOOST_INTERPROCESS_SMT_PAUSE _mm_pause();
#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) ) && !defined(_CRAYC)
#define BOOST_INTERPROCESS_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );