From 88d074c0e0a27c1655362f3cd894bf436148ee83 Mon Sep 17 00:00:00 2001 From: YalingFang Date: Fri, 5 Jan 2024 08:14:12 +0000 Subject: [PATCH] Add support for Loongarch --- CMakeLists.txt | 9 ++++++++- contrib/depends/packages/openssl.mk | 1 + contrib/depends/toolchain.cmake.in | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 99baba2ba..335391d16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -335,6 +335,11 @@ set(RISCV 1) set(RISCV32 1) endif() +if(ARCH_ID STREQUAL "loongarch64") +set(LOONGARCH 1) +set(LOONGARCH64 1) +endif() + if(WIN32 OR ARM OR PPC64LE OR PPC64 OR PPC) set(OPT_FLAGS_RELEASE "-O2") else() @@ -744,7 +749,7 @@ else() message(STATUS "AES support explicitly disabled") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_AES") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNO_AES") - elseif(NOT ARM AND NOT PPC64LE AND NOT PPC64 AND NOT PPC AND NOT S390X AND NOT RISCV) + elseif(NOT ARM AND NOT PPC64LE AND NOT PPC64 AND NOT PPC AND NOT S390X AND NOT RISCV AND NOT LOONGARCH) message(STATUS "AES support enabled") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes") @@ -754,6 +759,8 @@ else() message(STATUS "AES support not available on s390x") elseif(RISCV) message(STATUS "AES support not available on RISC-V") + elseif(LOONGARCH) + message(STATUS "AES support not available on LOONGARCH") elseif(ARM6) message(STATUS "AES support not available on ARMv6") elseif(ARM7) diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk index b35cf5e97..b124054d9 100644 --- a/contrib/depends/packages/openssl.mk +++ b/contrib/depends/packages/openssl.mk @@ -38,6 +38,7 @@ $(package)_config_opts_arm_android=--static android-arm $(package)_config_opts_aarch64_android=--static android-arm64 $(package)_config_opts_aarch64_darwin=darwin64-arm64-cc $(package)_config_opts_riscv64_linux=linux-generic64 +$(package)_config_opts_loongarch64_linux=linux-generic64 $(package)_config_opts_mipsel_linux=linux-generic32 $(package)_config_opts_mips_linux=linux-generic32 $(package)_config_opts_powerpc_linux=linux-generic32 diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in index 6fe4618ae..d8c7dc926 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -144,6 +144,10 @@ if(ARCHITECTURE STREQUAL "riscv64") set(ARCH_ID "riscv64") set(ARCH "rv64gc") endif() +if(ARCHITECTURE STREQUAL "loongarch64") + set(ARCH_ID "loongarch64") + set(ARCH "loongarch") +endif() if(ARCHITECTURE STREQUAL "i686") SET(ARCH_ID "i386")