diff -Naur cmake-3.22.0.org/Modules/FindJNI.cmake cmake-3.22.0.sw/Modules/FindJNI.cmake
--- cmake-3.22.0.org/Modules/FindJNI.cmake	2022-02-25 01:21:55.530000000 +0000
+++ cmake-3.22.0.sw/Modules/FindJNI.cmake	2022-02-25 01:30:19.530000000 +0000
@@ -61,6 +61,8 @@
         set(_java_libarch "i386")
     elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
         set(_java_libarch "arm64" "aarch64")
+    elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^sw_64")
+        set(_java_libarch "sw_64")
     elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^alpha")
         set(_java_libarch "alpha")
     elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
@@ -363,6 +365,7 @@
   ${JAVA_INCLUDE_PATH}/solaris
   ${JAVA_INCLUDE_PATH}/hp-ux
   ${JAVA_INCLUDE_PATH}/alpha
+  ${JAVA_INCLUDE_PATH}/sw_64
   ${JAVA_INCLUDE_PATH}/aix
 )
 
diff -Naur cmake-3.22.0.org/Modules/GNUInstallDirs.cmake cmake-3.22.0.sw/Modules/GNUInstallDirs.cmake
--- cmake-3.22.0.org/Modules/GNUInstallDirs.cmake	2022-02-25 01:21:55.550000000 +0000
+++ cmake-3.22.0.sw/Modules/GNUInstallDirs.cmake	2022-02-25 01:32:38.270000000 +0000
@@ -280,9 +280,9 @@
     elseif(NOT DEFINED __system_type_for_install)
       # not debian, alpine, arch, or conda so rely on CMAKE_SIZEOF_VOID_P:
       if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
-        set(_LIBDIR_DEFAULT "lib64")
+        set(_LIBDIR_DEFAULT "lib")
         if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX)
-          set(__LAST_LIBDIR_DEFAULT "lib64")
+          set(__LAST_LIBDIR_DEFAULT "lib")
         endif()
       endif()
     endif()
diff -Naur cmake-3.22.0.org/Utilities/KWIML/include/kwiml/abi.h cmake-3.22.0.sw/Utilities/KWIML/include/kwiml/abi.h
--- cmake-3.22.0.org/Utilities/KWIML/include/kwiml/abi.h	2022-02-25 01:21:57.660000000 +0000
+++ cmake-3.22.0.sw/Utilities/KWIML/include/kwiml/abi.h	2022-02-25 01:25:45.020000000 +0000
@@ -363,6 +363,10 @@
 #elif defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
 # define KWIML_ABI_ENDIAN_ID KWIML_ABI_ENDIAN_ID_LITTLE
 
+/* Sw_64 */
+#elif defined(__sw_64) || defined(__sw_64__) || defined(_M_SW_64)
+# define KWIML_ABI_ENDIAN_ID KWIML_ABI_ENDIAN_ID_LITTLE
+
 /* Alpha */
 #elif defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
 # define KWIML_ABI_ENDIAN_ID KWIML_ABI_ENDIAN_ID_LITTLE
diff -Naur cmake-3.22.0.org/Utilities/cmlibrhash/librhash/byte_order.h cmake-3.22.0.sw/Utilities/cmlibrhash/librhash/byte_order.h
--- cmake-3.22.0.org/Utilities/cmlibrhash/librhash/byte_order.h	2022-02-25 01:21:57.810000000 +0000
+++ cmake-3.22.0.sw/Utilities/cmlibrhash/librhash/byte_order.h	2022-02-25 01:26:26.980000000 +0000
@@ -75,7 +75,7 @@
 /* try detecting endianness by CPU */
 #ifdef RHASH_BYTE_ORDER
 #elif defined(CPU_IA32) || defined(CPU_X64) || defined(__ia64) || defined(__ia64__) || \
-      defined(__alpha__) || defined(_M_ALPHA) || defined(vax) || defined(MIPSEL) || \
+      defined(__alpha__) || defined(_M_ALPHA) || defined(__sw_64__) || defined(_M_SW_64) || defined(vax) || defined(MIPSEL) || \
       defined(_ARM_) || defined(__arm__)
 #  define RHASH_BYTE_ORDER RHASH_BYTE_ORDER_LE
 #elif defined(__sparc) || defined(__sparc__) || defined(sparc) || \
diff -Naur cmake-3.22.0.org/Utilities/cmlibuv/src/win/util.c cmake-3.22.0.sw/Utilities/cmlibuv/src/win/util.c
--- cmake-3.22.0.org/Utilities/cmlibuv/src/win/util.c	2022-02-25 01:21:57.830000000 +0000
+++ cmake-3.22.0.sw/Utilities/cmlibuv/src/win/util.c	2022-02-25 01:33:21.970000000 +0000
@@ -1917,6 +1917,10 @@
     case PROCESSOR_ARCHITECTURE_MIPS:
       uv__strscpy(buffer->machine, "mips", sizeof(buffer->machine));
       break;
+    case PROCESSOR_ARCHITECTURE_SW_64:
+    case PROCESSOR_ARCHITECTURE_SW_6464:
+      uv__strscpy(buffer->machine, "sw_64", sizeof(buffer->machine));
+      break;
     case PROCESSOR_ARCHITECTURE_ALPHA:
     case PROCESSOR_ARCHITECTURE_ALPHA64:
       uv__strscpy(buffer->machine, "alpha", sizeof(buffer->machine));
