Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
ca9a18e96d
!43 fix license
From: @xinghe_1 
Reviewed-by: @yanan-rock 
Signed-off-by: @yanan-rock
2024-08-08 02:18:35 +00:00
xh
40824413ec fix license 2024-08-01 01:59:38 +00:00
openeuler-ci-bot
46cc1dc271
!38 [sync] PR-34: riscv64: 修复rdcycle汇编指令导致的崩溃问题
From: @openeuler-sync-bot 
Reviewed-by: @dillon_chen 
Signed-off-by: @dillon_chen
2024-06-07 02:52:37 +00:00
laokz
c91a9a1933 riscv64: fix 'rdcycle' illegal instructor error
(cherry picked from commit be99fe2c2ec239dc41e85eedc5a112318347459f)
2024-06-07 10:44:33 +08:00
openeuler-ci-bot
5aaa6a7c8c
!32 [sync] PR-26: Fix build error for loongarch64
From: @openeuler-sync-bot 
Reviewed-by: @dillon_chen 
Signed-off-by: @dillon_chen
2024-06-07 02:41:30 +00:00
Wenlong Zhang
ca612ec6c6 Fix build error for loongarch64
(cherry picked from commit 88f2726ee4c0ae7f92bf17229438d14debd58479)
2024-05-27 11:01:36 +08:00
openeuler-ci-bot
c31e06bcaa
!25 optimize redundant dependence
From: @xinghe_1 
Reviewed-by: @yanan-rock 
Signed-off-by: @yanan-rock
2024-01-24 02:04:10 +00:00
xinghe
66ecdee18d optimize redundant dependence 2024-01-23 02:01:21 +00:00
openeuler-ci-bot
47041e505f
!24 update to 20230802.1
From: @xinghe_1 
Reviewed-by: @dillon_chen 
Signed-off-by: @dillon_chen
2024-01-02 08:30:09 +00:00
xh
677ba36693 update to 20230802.1 2023-12-25 16:24:05 +08:00
5 changed files with 143 additions and 26 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

@ -0,0 +1,81 @@
From 7335a36d0b5c1c597566f9aa3f458a5b6817c3b4 Mon Sep 17 00:00:00 2001
From: aurel32 <aurelien@aurel32.net>
Date: Fri, 22 Mar 2024 14:21:13 -0700
Subject: [PATCH] PR #1644: unscaledcycleclock: remove RISC-V support
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1644
Starting with Linux 6.6 [1], RDCYCLE is a privileged instruction on RISC-V and can't be used directly from userland. There is a sysctl option to change that as a transition period, but it will eventually disappear.
The RDTIME instruction is another less accurate alternative, however its frequency varies from board to board, and there is currently now way to get its frequency from userland [2].
Therefore this patch just removes the code for unscaledcycleclock on RISC-V. Without processor specific implementation, abseil relies on std::chrono::steady_clock::now().time_since_epoch() which is basically a wrapper around clock_gettime (CLOCK_MONOTONIC), which in turns use __vdso_clock_gettime(). On RISC-V this VDSO is just a wrapper around RDTIME correctly scaled to use nanoseconds units.
This fixes the testsuite on riscv64, tested on a VisionFive 2 board.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cc4c07c89aada16229084eeb93895c95b7eabaa3
[2] https://github.com/abseil/abseil-cpp/pull/1631
Merge 43356a2548cfde76e164d446cb69004b488c6a71 into 76f8011beabdaee872b5fde7546e02407b220cb1
Merging this change closes #1644
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1644 from aurel32:rv64-no-unscaledcycleclock 43356a2548cfde76e164d446cb69004b488c6a71
PiperOrigin-RevId: 618286262
Change-Id: Ie4120a727e7d0bb185df6e06ea145c780ebe6652
---
absl/base/internal/unscaledcycleclock.cc | 12 ------------
absl/base/internal/unscaledcycleclock_config.h | 8 ++++----
2 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/absl/base/internal/unscaledcycleclock.cc b/absl/base/internal/unscaledcycleclock.cc
index 05e0e7ba..a0bf3a65 100644
--- a/absl/base/internal/unscaledcycleclock.cc
+++ b/absl/base/internal/unscaledcycleclock.cc
@@ -121,18 +121,6 @@ double UnscaledCycleClock::Frequency() {
return aarch64_timer_frequency;
}
-#elif defined(__riscv)
-
-int64_t UnscaledCycleClock::Now() {
- int64_t virtual_timer_value;
- asm volatile("rdcycle %0" : "=r"(virtual_timer_value));
- return virtual_timer_value;
-}
-
-double UnscaledCycleClock::Frequency() {
- return base_internal::NominalCPUFrequency();
-}
-
#elif defined(_M_IX86) || defined(_M_X64)
#pragma intrinsic(__rdtsc)
diff --git a/absl/base/internal/unscaledcycleclock_config.h b/absl/base/internal/unscaledcycleclock_config.h
index 24b324ac..43a3dabe 100644
--- a/absl/base/internal/unscaledcycleclock_config.h
+++ b/absl/base/internal/unscaledcycleclock_config.h
@@ -21,8 +21,8 @@
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
- defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
+ defined(__powerpc__) || defined(__ppc__) || defined(_M_IX86) || \
+ (defined(_M_X64) && !defined(_M_ARM64EC))
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 0
@@ -53,8 +53,8 @@
#if ABSL_USE_UNSCALED_CYCLECLOCK
// This macro can be used to test if UnscaledCycleClock::Frequency()
// is NominalCPUFrequency() on a particular platform.
-#if (defined(__i386__) || defined(__x86_64__) || defined(__riscv) || \
- defined(_M_IX86) || defined(_M_X64))
+#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || \
+ defined(_M_X64))
#define ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
#endif
#endif
--
2.39.2

Binary file not shown.

Binary file not shown.

View File

@ -2,21 +2,20 @@
%undefine __cmake_in_source_build
# Installed library version
%global lib_version 2301.0.0
%global lib_version 2308.0.0
Name: abseil-cpp
Version: 20230125.3
Release: 1
Version: 20230802.1
Release: 5
Summary: C++ Common Libraries
License: Apache-2.0 AND LicenseRef-Fedora-Public-Domain
License: Apache-2.0
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
Patch101: 0002-PR-1644-unscaledcycleclock-remove-RISC-V-support.patch
BuildRequires: cmake ninja-build
BuildRequires: gcc-c++
@ -51,7 +50,9 @@ Development headers for %{name}
%build
%cmake -S %{_vpath_srcdir} -B %{_vpath_builddir} -GNinja \
-DCMAKE_BUILD_TYPE:STRING=None \
-DCMAKE_CXX_STANDARD:STRING=17
-DCMAKE_CXX_STANDARD:STRING=17 \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed" \
-DCMAKE_BUILD_TYPE=RelWithDebInfo
%__cmake --build %{_vpath_builddir} %{?_smp_mflags} --verbose
@ -101,6 +102,7 @@ DESTDIR="%{buildroot}" %__cmake --install "%{_vpath_builddir}"
%{_libdir}/libabsl_hash.so.%{lib_version}
%{_libdir}/libabsl_hashtablez_sampler.so.%{lib_version}
%{_libdir}/libabsl_int128.so.%{lib_version}
%{_libdir}/libabsl_kernel_timeout_internal.so.%{lib_version}
%{_libdir}/libabsl_leak_check.so.%{lib_version}
%{_libdir}/libabsl_log_entry.so.%{lib_version}
%{_libdir}/libabsl_log_flags.so.%{lib_version}
@ -141,6 +143,7 @@ DESTDIR="%{buildroot}" %__cmake --install "%{_vpath_builddir}"
%{_libdir}/libabsl_strerror.so.%{lib_version}
%{_libdir}/libabsl_strings.so.%{lib_version}
%{_libdir}/libabsl_strings_internal.so.%{lib_version}
%{_libdir}/libabsl_string_view.so.%{lib_version}
%{_libdir}/libabsl_symbolize.so.%{lib_version}
%{_libdir}/libabsl_synchronization.so.%{lib_version}
%{_libdir}/libabsl_throw_delegate.so.%{lib_version}
@ -154,6 +157,36 @@ DESTDIR="%{buildroot}" %__cmake --install "%{_vpath_builddir}"
%{_libdir}/pkgconfig/*.pc
%changelog
* Thu Aug 01 2024 xinghe <xinghe2@h-partners.com> - 20230802.1-5
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix license
* Fri May 31 2024 laokz <zhangkai@iscas.ac.cn> - 20230802.1-4
- Type:bugfix
- CVE:NA
- SUG:NA
- DESC:Fix riscv64 'rdcycle' illegal instructor error
* 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
- SUG:NA
- DESC:optimize redundant dependence
* Mon Dec 25 2023 xinghe <xinghe2@h-partners.com> - 20230802.1-1
- Type:requirement
- ID:NA
- SUG:NA
- DESC:update to 20230802.1
* Thu Jul 27 2023 gaihuiying <eaglegai@163.com> - 20230125.3-1
- Type:requirement
- ID:NA