|
Sierra Toolkit
Version of the Day
|
00001 #ifndef STK_UTIL_UTIL_FeatureTest_h 00002 # define STK_UTIL_UTIL_FeatureTest_h 00003 00004 // #include <boost/config.hpp> 00005 00093 00094 // Platform/operating system based features and bugs 00095 #if defined(REDS) // Redstorm 00096 # define SIERRA_SETVBUF_OUTPUT 1 00097 # define SIERRA_DIAG_ENDL_NOFLUSH 00098 # define SIERRA_SRAND_PARALLEL_IO_BUG 00099 # define SIERRA_HEAP_INFO 00100 # define SIERRA_MEMORY_INFO 00101 # define SIERRA_USER_SHUTDOWN_SIGNAL SIGUSR1 00102 # define SIERRA_SHUTDOWN_SIGNAL SIGTERM 00103 00104 #elif defined(_CRAYXE) // Cray 00105 # define SIERRA_SETVBUF_OUTPUT 1 00106 # define SIERRA_DIAG_ENDL_NOFLUSH 00107 # define SIERRA_SRAND_PARALLEL_IO_BUG 00108 # define SIERRA_HEAP_INFO 00109 # define SIERRA_MEMORY_INFO 00110 # define SIERRA_SHUTDOWN_SIGNAL SIGTERM 00111 # define SIERRA_USER_SHUTDOWN_SIGNAL SIGURG 00112 00113 #elif defined(__sun) // sass8000/sass9000 00114 # define SIERRA_HEAP_INFO 00115 # define SIERRA_MEMORY_INFO 00116 # define SIERRA_MPI_ABORT_SIGNAL SIGTERM 00117 # define SIERRA_USER_SHUTDOWN_SIGNAL SIGHUP 00118 00119 #elif defined(__linux__) // Generic linux 00120 # define SIERRA_USE_PLATFORM_DEMANGLER 00121 # define SIERRA_HEAP_INFO 00122 # define SIERRA_MEMORY_INFO 00123 # define SIERRA_MPI_ABORT_SIGNAL SIGTERM 00124 # define SIERRA_USER_SHUTDOWN_SIGNAL SIGUSR1 00125 00126 #elif defined(__APPLE__) // MacOS 00127 # define SIERRA_USE_PLATFORM_DEMANGLER 00128 # define SIERRA_HEAP_INFO 00129 # define SIERRA_MEMORY_INFO 00130 # define SIERRA_MPI_ABORT_SIGNAL SIGTERM 00131 # define SIERRA_USER_SHUTDOWN_SIGNAL SIGUSR1 00132 00133 #else // Unknown platform 00134 # warning Could not determine platform/operating system 00135 #endif 00136 00137 00138 // Compiler/runtime specific features and bugs 00139 00140 #if defined(__xlC__) // IBM compiler 00141 # if __xlC__ < 0x0800 00142 # define SIERRA_TEMPLATE_FUNCTION_SELECT_BUG 00143 # endif 00144 # define SIERRA_TYPE_INFO_BEFORE_EQUALITY_BUG 00145 # define SIERRA_AUTO_PTR_ASSIGNMENT_BUG 00146 00147 #elif defined(__sun) || defined(__SUNPRO_CC) // Sun spro compiler 00148 # define SIERRA_MPI_ALLREDUCE_USER_FUNCTION_BUG 00149 00150 #elif defined(__INTEL_COMPILER) // Intel compiler 00151 # if __INTEL_COMPILER/100 == 10 && defined(__ia64) // Version 10 Intel compiler on ia64 00152 # define SIERRA_IA64_OPTIMIZER_FIX 00153 # elif __INTEL_COMPILER/100 == 11 && defined(__ia64) // Version 11 Intel compiler on ia64 00154 # define SIERRA_IA64_OPTIMIZER_FIX 00155 # elif __INTEL_COMPILER/100 >= 12 && defined(__ia64) // Version 12+ Intel compiler on ia64 00156 # define SIERRA_IA64_OPTIMIZER_WARN 00157 # endif 00158 00159 #elif defined(__PGI) // PGI compiler 00160 00161 #elif defined(_CRAYC) // CRAY compiler 00162 00163 #elif defined(__APPLE_CC__) // Apple compiler 00164 00165 #elif defined(__PATHSCALE__) // Pathscale compiler 00166 # if (__GNUC__ > 3) || defined(PATHSCALE_GNU4) // Only with gcc3 front-end 00167 # define NO_SIERRA_TEMPLATE_CALL_BUG 00168 # else 00169 # define SIERRA_TEMPLATE_CALL_BUG 00170 # endif 00171 00172 #elif defined(__GNUC__) // GNU compiler, do this last since *every* compiler thinks its gcc 00173 # if __GNUC__ == 3 && __GNUC_MINOR__ < 4 00174 # define SIERRA_TEMPLATE_CALL_BUG 00175 # endif 00176 00177 #else // Unknown compiler 00178 # warning Could not determine compiler/runtime 00179 #endif 00180 00184 00185 #endif // STK_UTIL_UTIL_FeatureTest_h