!27 [sync] PR-26: Fix build error for loongarch64

From: @openeuler-sync-bot 
Reviewed-by: @licihua 
Signed-off-by: @licihua
This commit is contained in:
openeuler-ci-bot 2024-05-22 11:38:46 +00:00 committed by Gitee
commit 97133f0259
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 29 additions and 22 deletions

View File

@ -1,34 +1,37 @@
From a8c98703c8b7b1fc3ae104dce0bfd05dc92a1d7d Mon Sep 17 00:00:00 2001
From: Wenlong Zhang <zhangwenlong@loongson.cn> Huang Yang <huangyang@loongson.cn>
Date: Mon, 14 Nov 2022 11:48:49 +0000
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
Signed-off-by: Wenlong Zhang <zhangwenlong@loongson.cn>
---
absl/base/internal/direct_mmap.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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 e492bb0..d11a64e 100644
index 1beb2ee..80fcbbb 100644
--- a/absl/base/internal/direct_mmap.h
+++ b/absl/base/internal/direct_mmap.h
@@ -79,6 +79,7 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
(defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) || \
@@ -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(__loongarch64) || \
(defined(__s390__) && !defined(__s390x__)) || \
(defined(__sparc__) && !defined(__arch64__))
- (defined(__sparc__) && !defined(__arch64__))
+ (defined(__sparc__) && !defined(__arch64__)) || \
+ defined(__loongarch64)
// On these architectures, implement mmap with mmap2.
@@ -100,7 +101,7 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
return __mmap2(start, length, prot, flags, fd, offset / pagesize);
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,
+ syscall(SYS_mmap, start, length, prot, flags, fd,
static_cast<off_t>(offset / pagesize)));
#endif
#elif defined(__s390x__)
syscall(SYS_mmap2, start, length, prot, flags, fd,
--
2.33.0
2.43.0

View File

@ -6,7 +6,7 @@
Name: abseil-cpp
Version: 20230802.1
Release: 2
Release: 3
Summary: C++ Common Libraries
License: Apache-2.0 AND LicenseRef-Fedora-Public-Domain
@ -14,9 +14,7 @@ URL: https://abseil.io
Source0: https://github.com/abseil/abseil-cpp/archive/%{version}/%{name}-%{version}.tar.gz
Patch1: abseil-cpp-20210324.2-sw.patch
%ifarch loongarch64
Patch100: 0001-add-loongarch-suopport-for-abseil-cpp.patch
%endif
BuildRequires: cmake ninja-build
BuildRequires: gcc-c++
@ -158,6 +156,12 @@ DESTDIR="%{buildroot}" %__cmake --install "%{_vpath_builddir}"
%{_libdir}/pkgconfig/*.pc
%changelog
* Wed Mar 6 2024 Wenlong Zhang <zhangwenlong@loongson.cn> - 20230802.1-3
- Type:bugfix
- CVE:NA
- SUG:NA
- DESC:Fix build error for loongarch64
* Tue Jan 23 2024 xinghe <xinghe2@h-partners.com> - 20230802.1-2
- Type:bugfix
- ID:NA