diff --git a/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst b/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst index 1efbf1c5fb..ff54da29c4 100644 --- a/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst +++ b/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst @@ -123,6 +123,9 @@ targets a UNIX platform. ``sparcv9`` SPARC 64-bit +``sw_64`` + Sunway + ``x86_64`` Intel 64-bit diff --git a/Modules/CMakeCompilerABI.h b/Modules/CMakeCompilerABI.h index dc71f9f92c..40c5be4b3a 100644 --- a/Modules/CMakeCompilerABI.h +++ b/Modules/CMakeCompilerABI.h @@ -114,6 +114,8 @@ static unsigned short const info_byte_order_little_endian[] = { # define ARCHITECTURE_ID "riscv64" #elif defined(__riscv) && __riscv_xlen == 32 # define ARCHITECTURE_ID "riscv32" +#elif defined(__sw_64) +# define ARCHITECTURE_ID "sw_64" #elif defined(__s390x__) # define ARCHITECTURE_ID "s390x" #elif defined(__s390__) diff --git a/Modules/CMakeFortranCompilerABI.F b/Modules/CMakeFortranCompilerABI.F index 81676cb7a7..e9e05528e6 100644 --- a/Modules/CMakeFortranCompilerABI.F +++ b/Modules/CMakeFortranCompilerABI.F @@ -113,6 +113,8 @@ PRINT *, 'INFO:arch[riscv64]' #elif defined(__riscv) && __riscv_xlen == 32 PRINT *, 'INFO:arch[riscv32]' +#elif defined(__sw_64) || defined(__sw_64__) + PRINT *, 'INFO:arch[sw_64]' #elif defined(__s390x__) PRINT *, 'INFO:arch[s390x]' #elif defined(__s390__) diff --git a/Modules/CMakeFortranCompilerABI.F90 b/Modules/CMakeFortranCompilerABI.F90 index 2a9259b1a7..0246d2a66c 100644 --- a/Modules/CMakeFortranCompilerABI.F90 +++ b/Modules/CMakeFortranCompilerABI.F90 @@ -105,6 +105,8 @@ PRINT *, 'INFO:arch[loongarch64]' PRINT *, 'INFO:arch[loongarch32]' #elif defined(__m68k__) PRINT *, 'INFO:arch[m68k]' +#elif defined(__sw_64) +PRINT *, 'INFO:arch[sw_64]' #elif defined(__mips64) || defined(__mips64__) # if defined(_MIPSEL) PRINT *, 'INFO:arch[mips64el]' diff --git a/Modules/Internal/CMakeParseCompilerArchitectureId.cmake b/Modules/Internal/CMakeParseCompilerArchitectureId.cmake index 9200158b05..e5ee90e7e5 100644 --- a/Modules/Internal/CMakeParseCompilerArchitectureId.cmake +++ b/Modules/Internal/CMakeParseCompilerArchitectureId.cmake @@ -47,6 +47,8 @@ function(cmake_parse_compiler_architecture_id triple arch_id_var) set(ARCHITECTURE_ID "riscv64") elseif(_dumpmachine_triple MATCHES "^riscv32-") set(ARCHITECTURE_ID "riscv32") + elseif(_dumpmachine_triple MATCHES "^sunway-") + set(ARCHITECTURE_ID "sw_64") elseif(_dumpmachine_triple MATCHES "^s390x-") set(ARCHITECTURE_ID "s390x") elseif(_dumpmachine_triple MATCHES "^s390-") diff --git a/Utilities/cmlibrhash/librhash/byte_order.h b/Utilities/cmlibrhash/librhash/byte_order.h index 73863e067f..6e6549e26f 100644 --- a/Utilities/cmlibrhash/librhash/byte_order.h +++ b/Utilities/cmlibrhash/librhash/byte_order.h @@ -77,7 +77,7 @@ extern "C" { #elif defined(CPU_IA32) || defined(CPU_X64) || defined(__ia64) || defined(__ia64__) || \ defined(__alpha__) || defined(_M_ALPHA) || defined(vax) || defined(MIPSEL) || \ defined(_ARM_) || defined(__arm__) || defined(_M_ARM64) || defined(_M_ARM64EC) || \ - defined(__loongarch64) + defined(__loongarch64) || defined(__sw_64) # define RHASH_BYTE_ORDER RHASH_BYTE_ORDER_LE #elif defined(__sparc) || defined(__sparc__) || defined(sparc) || \ defined(_ARCH_PPC) || defined(_ARCH_PPC64) || defined(_POWER) || \