diff options
author | wuruilong <wuruilong@loongson.cn> | 2023-11-16 07:25:40 +0000 |
---|---|---|
committer | wuruilong <wuruilong@loongson.cn> | 2023-11-16 07:25:40 +0000 |
commit | 0880967e05cc8d3c4b9e52073f8fb453c13ae22c (patch) | |
tree | b4797f9899670031d57343d22c56f73325058c5b | |
parent | dfd698fe1c9c5fd32155c78d6f9e95526fe06999 (diff) | |
download | rspamd-0880967e05cc8d3c4b9e52073f8fb453c13ae22c.tar.gz rspamd-0880967e05cc8d3c4b9e52073f8fb453c13ae22c.zip |
Add support for loongarch
-rw-r--r-- | cmake/FindArch.cmake | 2 | ||||
-rw-r--r-- | contrib/backward-cpp/backward.hpp | 2 | ||||
-rw-r--r-- | contrib/libev/ev.c | 2 | ||||
-rw-r--r-- | src/rspamd.c | 2 |
4 files changed, 8 insertions, 0 deletions
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<void *>(uctx->uc_mcontext.pc); #endif +#elif defined(__loongarch__) + error_addr = reinterpret_cast<void *>(uctx->uc_mcontext.__pc); #elif defined(__mips__) error_addr = reinterpret_cast<void *>( reinterpret_cast<struct sigcontext *>(&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) |