From: wuruilong Date: Thu, 16 Nov 2023 07:25:40 +0000 (+0000) Subject: Add support for loongarch X-Git-Tag: 3.7.5~3^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d7076d75901fabf8bc3ec398d7a4f1fb4f0be5f1;p=rspamd.git Add support for loongarch --- diff --git a/cmake/FindArch.cmake b/cmake/FindArch.cmake index d1defc82b..e17220737 100644 --- a/cmake/FindArch.cmake +++ b/cmake/FindArch.cmake @@ -35,6 +35,8 @@ set(archdetect_c_code " #else #error cmake_ARCH ppc #endif +#elif defined(__loongarch__) || defined(__loongarch64) + #error cmake_ARCH loongarch64 #endif #error cmake_ARCH unknown diff --git a/contrib/backward-cpp/backward.hpp b/contrib/backward-cpp/backward.hpp index ce725559b..ca09b7217 100644 --- a/contrib/backward-cpp/backward.hpp +++ b/contrib/backward-cpp/backward.hpp @@ -4222,6 +4222,8 @@ public: #else error_addr = reinterpret_cast(uctx->uc_mcontext.pc); #endif +#elif defined(__loongarch__) + error_addr = reinterpret_cast(uctx->uc_mcontext.__pc); #elif defined(__mips__) error_addr = reinterpret_cast( reinterpret_cast(&uctx->uc_mcontext)->sc_pc); diff --git a/contrib/libev/ev.c b/contrib/libev/ev.c index 8657aa96e..230445d2a 100644 --- a/contrib/libev/ev.c +++ b/contrib/libev/ev.c @@ -843,6 +843,8 @@ struct signalfd_siginfo #define ECB_MEMORY_FENCE __asm__ __volatile__ ("tb1 0,%%r0,128" : : : "memory") #elif defined __sh__ #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") + #elif defined __loongarch__ || __loongarch64 + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("dbar %0 ": : "I"(0) : "memory") #endif #endif #endif diff --git a/src/rspamd.c b/src/rspamd.c index df08f5410..b8523b44b 100644 --- a/src/rspamd.c +++ b/src/rspamd.c @@ -1279,6 +1279,8 @@ get_cpu_architecture(void) return "ARM64"; #elif defined(__arm__) || defined(_M_ARM) return "ARM"; +#elif defined(__loongarch__) || defined(__loongarch64) + return "LOONGARCH64"; #elif defined(__mips__) return "MIPS"; #elif defined(__powerpc__) || defined(_M_PPC)