Go to the documentation of this file.
   19#define KMP_OS_DRAGONFLY 0 
   20#define KMP_OS_FREEBSD 0 
   21#define KMP_OS_NETBSD 0 
   22#define KMP_OS_OPENBSD 0 
   23#define KMP_OS_DARWIN 0 
   24#define KMP_OS_WINDOWS 0 
   27#define KMP_OS_SOLARIS 0 
   29#define KMP_OS_EMSCRIPTEN 0 
   35#define KMP_OS_WINDOWS 1 
   38#if (defined __APPLE__ && defined __MACH__) 
   40#define KMP_OS_DARWIN 1 
   47#elif (defined __linux__) 
   50#elif defined(__EMSCRIPTEN__) 
   52#undef KMP_OS_EMSCRIPTEN 
   54#define KMP_OS_EMSCRIPTEN 1 
   58#if (defined __DragonFly__) 
   59#undef KMP_OS_DRAGONFLY 
   60#define KMP_OS_DRAGONFLY 1 
   63#if (defined __FreeBSD__) 
   65#define KMP_OS_FREEBSD 1 
   68#if (defined __NetBSD__) 
   70#define KMP_OS_NETBSD 1 
   73#if (defined __OpenBSD__) 
   75#define KMP_OS_OPENBSD 1 
   78#if (defined __HAIKU__) 
   88#if (defined __sun__ && defined __svr4__) 
   90#define KMP_OS_SOLARIS 1 
  103#if (1 != KMP_OS_LINUX + KMP_OS_DRAGONFLY + KMP_OS_FREEBSD + KMP_OS_NETBSD +   \ 
  104              KMP_OS_OPENBSD + KMP_OS_DARWIN + KMP_OS_WINDOWS + KMP_OS_HAIKU + \ 
  105              KMP_OS_HURD + KMP_OS_SOLARIS + KMP_OS_WASI + KMP_OS_AIX) 
  109#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD ||     \ 
  110    KMP_OS_OPENBSD || KMP_OS_DARWIN || KMP_OS_HAIKU || KMP_OS_HURD ||          \ 
  111    KMP_OS_SOLARIS || KMP_OS_WASI || KMP_OS_AIX 
  118#define KMP_ARCH_X86 0 
  119#define KMP_ARCH_X86_64 0 
  120#define KMP_ARCH_AARCH64 0 
  121#define KMP_ARCH_AARCH64_32 0 
  122#define KMP_ARCH_PPC64_ELFv1 0 
  123#define KMP_ARCH_PPC64_ELFv2 0 
  124#define KMP_ARCH_PPC64_XCOFF 0 
  125#define KMP_ARCH_PPC_XCOFF 0 
  126#define KMP_ARCH_PPC 0 
  127#define KMP_ARCH_MIPS 0 
  128#define KMP_ARCH_MIPS64 0 
  129#define KMP_ARCH_RISCV64 0 
  130#define KMP_ARCH_LOONGARCH64 0 
  132#define KMP_ARCH_S390X 0 
  133#define KMP_ARCH_SPARC 0 
  136#if defined(_M_AMD64) || defined(__x86_64) 
  137#undef KMP_ARCH_X86_64 
  138#define KMP_ARCH_X86_64 1 
  139#elif defined(__aarch64__) || defined(_M_ARM64) 
  140#undef KMP_ARCH_AARCH64 
  141#define KMP_ARCH_AARCH64 1 
  142#elif defined(__arm__) || defined(_M_ARM) 
  144#define KMP_ARCH_ARMV7 1 
  147#define KMP_ARCH_X86 1 
  153#undef KMP_ARCH_X86_64 
  154#define KMP_ARCH_X86_64 1 
  157#define KMP_ARCH_X86 1 
  158#elif defined __powerpc64__ 
  159#if defined(_CALL_ELF) 
  161#undef KMP_ARCH_PPC64_ELFv2 
  162#define KMP_ARCH_PPC64_ELFv2 1 
  164#undef KMP_ARCH_PPC64_ELFv1 
  165#define KMP_ARCH_PPC64_ELFv1 1 
  168#undef KMP_ARCH_PPC64_XCOFF 
  169#define KMP_ARCH_PPC64_XCOFF 1 
  171#elif defined(__powerpc__) && KMP_OS_AIX 
  172#undef KMP_ARCH_PPC_XCOFF 
  173#define KMP_ARCH_PPC_XCOFF 1 
  175#define KMP_ARCH_PPC 1 
  176#elif defined(__powerpc__) && !defined(__LP64__) 
  178#define KMP_ARCH_PPC 1 
  179#elif defined __ARM64_ARCH_8_32__ 
  180#undef KMP_ARCH_AARCH64_32 
  181#define KMP_ARCH_AARCH64_32 1 
  182#elif defined __aarch64__ 
  183#undef KMP_ARCH_AARCH64 
  184#define KMP_ARCH_AARCH64 1 
  185#elif defined __mips__ 
  187#undef KMP_ARCH_MIPS64 
  188#define KMP_ARCH_MIPS64 1 
  191#define KMP_ARCH_MIPS 1 
  193#elif defined __riscv && __riscv_xlen == 64 
  194#undef KMP_ARCH_RISCV64 
  195#define KMP_ARCH_RISCV64 1 
  196#elif defined __loongarch__ && __loongarch_grlen == 64 
  197#undef KMP_ARCH_LOONGARCH64 
  198#define KMP_ARCH_LOONGARCH64 1 
  202#elif defined __s390x__ 
  204#define KMP_ARCH_S390X 1 
  205#elif defined __sparc || defined __sparc__ 
  207#define KMP_ARCH_SPARC 1 
  211#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7R__) ||                     \ 
  212    defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7VE__) 
  213#define KMP_ARCH_ARMV7 1 
  216#if defined(KMP_ARCH_ARMV7) || defined(__ARM_ARCH_6__) ||                      \ 
  217    defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) ||                    \ 
  218    defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6T2__) ||                   \ 
  219    defined(__ARM_ARCH_6ZK__) 
  220#define KMP_ARCH_ARMV6 1 
  223#if defined(KMP_ARCH_ARMV6) || defined(__ARM_ARCH_5T__) ||                     \ 
  224    defined(__ARM_ARCH_5E__) || defined(__ARM_ARCH_5TE__) ||                   \ 
  225    defined(__ARM_ARCH_5TEJ__) 
  226#define KMP_ARCH_ARMV5 1 
  229#if defined(KMP_ARCH_ARMV5) || defined(__ARM_ARCH_4__) ||                      \ 
  230    defined(__ARM_ARCH_4T__) 
  231#define KMP_ARCH_ARMV4 1 
  234#if defined(KMP_ARCH_ARMV4) || defined(__ARM_ARCH_3__) ||                      \ 
  235    defined(__ARM_ARCH_3M__) 
  236#define KMP_ARCH_ARMV3 1 
  239#if defined(KMP_ARCH_ARMV3) || defined(__ARM_ARCH_2__) 
  240#define KMP_ARCH_ARMV2 1 
  243#if defined(KMP_ARCH_ARMV2) 
  244#define KMP_ARCH_ARM 1 
  247#if defined(__wasm32__) 
  248#define KMP_ARCH_WASM 1 
  251#define KMP_ARCH_PPC64                                                         \ 
  252  (KMP_ARCH_PPC64_ELFv2 || KMP_ARCH_PPC64_ELFv1 || KMP_ARCH_PPC64_XCOFF) 
   251#define KMP_ARCH_PPC64                                                         \ …  
  254#if defined(KMP_ARCH_SPARC) 
  255#undef KMP_ARCH_SPARC32 
  256#undef KMP_ARCH_SPARC64 
  257#if defined(__sparcv9) || defined(__sparc64__) 
  258#define KMP_ARCH_SPARC64 1 
  260#if defined(__sparc) && !defined(__sparcv9) && !defined(__sparc64__) 
  261#define KMP_ARCH_SPARC32 1 
  265#if defined(__MIC__) || defined(__MIC2__) 
  267#if __MIC2__ || __KNC__ 
  281#define KMP_32_BIT_ARCH                                                        \ 
  282  (KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_MIPS || KMP_ARCH_WASM ||           \ 
  283   KMP_ARCH_PPC || KMP_ARCH_AARCH64_32 || KMP_ARCH_SPARC32) 
   281#define KMP_32_BIT_ARCH                                                        \ …  
  286#define KMP_MIC_SUPPORTED                                                      \ 
  287  ((KMP_ARCH_X86 || KMP_ARCH_X86_64) && (KMP_OS_LINUX || KMP_OS_WINDOWS)) 
   286#define KMP_MIC_SUPPORTED                                                      \ …  
  290#if (1 != KMP_ARCH_X86 + KMP_ARCH_X86_64 + KMP_ARCH_ARM + KMP_ARCH_PPC64 +     \ 
  291              KMP_ARCH_AARCH64 + KMP_ARCH_MIPS + KMP_ARCH_MIPS64 +             \ 
  292              KMP_ARCH_RISCV64 + KMP_ARCH_LOONGARCH64 + KMP_ARCH_VE +          \ 
  293              KMP_ARCH_S390X + KMP_ARCH_WASM + KMP_ARCH_PPC +                  \ 
  294              KMP_ARCH_AARCH64_32 + KMP_ARCH_SPARC) 
  295#error Unknown or unsupported architecture