diff options
Diffstat (limited to '0001-add-loongarch-suopport-for-abseil-cpp.patch')
-rw-r--r-- | 0001-add-loongarch-suopport-for-abseil-cpp.patch | 37 |
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 + |