summaryrefslogtreecommitdiff
path: root/0001-add-loongarch-suopport-for-abseil-cpp.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-add-loongarch-suopport-for-abseil-cpp.patch')
-rw-r--r--0001-add-loongarch-suopport-for-abseil-cpp.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/0001-add-loongarch-suopport-for-abseil-cpp.patch b/0001-add-loongarch-suopport-for-abseil-cpp.patch
new file mode 100644
index 0000000..2a90469
--- /dev/null
+++ b/0001-add-loongarch-suopport-for-abseil-cpp.patch
@@ -0,0 +1,37 @@
+From 560380189ff29687e011eada93774af59452f2c5 Mon Sep 17 00:00:00 2001
+From: Wenlong Zhang <zhangwenlong@loongson.cn>
+Date: Wed, 6 Mar 2024 03:28:59 +0000
+Subject: [PATCH] add loongarch suopport for abseil-cpp
+
+---
+ absl/base/internal/direct_mmap.h | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/absl/base/internal/direct_mmap.h b/absl/base/internal/direct_mmap.h
+index 1beb2ee..80fcbbb 100644
+--- a/absl/base/internal/direct_mmap.h
++++ b/absl/base/internal/direct_mmap.h
+@@ -80,7 +80,8 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+ (defined(__PPC__) && !defined(__PPC64__)) || \
+ (defined(__riscv) && __riscv_xlen == 32) || \
+ (defined(__s390__) && !defined(__s390x__)) || \
+- (defined(__sparc__) && !defined(__arch64__))
++ (defined(__sparc__) && !defined(__arch64__)) || \
++ defined(__loongarch64)
+ // On these architectures, implement mmap with mmap2.
+ static int pagesize = 0;
+ if (pagesize == 0) {
+@@ -99,6 +100,10 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+ // Workaround by invoking __mmap2() instead.
+ return __mmap2(start, length, prot, flags, fd,
+ static_cast<size_t>(offset / pagesize));
++#elif defined(__loongarch64)
++ return reinterpret_cast<void*>(
++ syscall(SYS_mmap, start, length, prot, flags, fd,
++ static_cast<unsigned long>(offset / pagesize))); // NOLINT
+ #else
+ return reinterpret_cast<void*>(
+ syscall(SYS_mmap2, start, length, prot, flags, fd,
+--
+2.43.0
+