From 13a59416c0aadfe6950b3ccb9f252f09b256b7f8 Mon Sep 17 00:00:00 2001 From: laokz Date: Fri, 20 Sep 2024 09:23:34 +0800 Subject: [PATCH] riscv64: fix build err Let BuildRequires:valgrind-devel depend on system arch macro. --- 9002-fix-riscv64-build.patch | 41 ++++++++++++++++++++++++++++++++++++ ceph.spec | 11 +++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 9002-fix-riscv64-build.patch diff --git a/9002-fix-riscv64-build.patch b/9002-fix-riscv64-build.patch new file mode 100644 index 0000000..5ce1521 --- /dev/null +++ b/9002-fix-riscv64-build.patch @@ -0,0 +1,41 @@ +diff --git a/src/arrow/cpp/cmake_modules/SetupCxxFlags.cmake b/src/arrow/cpp/cmake_modules/SetupCxxFlags.cmake +index c1a1ba0..84f224b 100644 +--- a/src/arrow/cpp/cmake_modules/SetupCxxFlags.cmake ++++ b/src/arrow/cpp/cmake_modules/SetupCxxFlags.cmake +@@ -32,6 +32,8 @@ if(NOT DEFINED ARROW_CPU_FLAG) + set(ARROW_CPU_FLAG "ppc") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "s390x") + set(ARROW_CPU_FLAG "s390x") ++ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64") ++ set(ARROW_CPU_FLAG "riscv64") + else() + set(ARROW_CPU_FLAG "x86") + endif() +diff --git a/src/arrow/cpp/src/arrow/vendored/fast_float/float_common.h b/src/arrow/cpp/src/arrow/vendored/fast_float/float_common.h +index f7b7662..c1fe08d 100644 +--- a/src/arrow/cpp/src/arrow/vendored/fast_float/float_common.h ++++ b/src/arrow/cpp/src/arrow/vendored/fast_float/float_common.h +@@ -10,7 +10,7 @@ + || defined(__MINGW64__) \ + || defined(__s390x__) \ + || (defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)) \ +- || defined(__EMSCRIPTEN__)) ++ || defined(__EMSCRIPTEN__) || defined(__riscv)) + #define FASTFLOAT_64BIT + #elif (defined(__i386) || defined(__i386__) || defined(_M_IX86) \ + || defined(__arm__) \ +diff --git a/src/common/Cycles.h b/src/common/Cycles.h +index b546479..14bc6bf 100644 +--- a/src/common/Cycles.h ++++ b/src/common/Cycles.h +@@ -84,6 +84,10 @@ class Cycles { + uint64_t tsc; + asm volatile("stck %0" : "=Q" (tsc) : : "cc"); + return tsc; ++#elif defined(__riscv) && __riscv_xlen == 64 ++ uint64_t tsc; ++ asm volatile ("rdtime %0" : "=r" (tsc)); ++ return tsc; + #else + #warning No high-precision counter available for your OS/arch + return 0; diff --git a/ceph.spec b/ceph.spec index b381103..2d41fe8 100644 --- a/ceph.spec +++ b/ceph.spec @@ -174,7 +174,7 @@ ################################################################################# Name: ceph Version: 18.2.2 -Release: 5 +Release: 6 %if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler} Epoch: 2 %endif @@ -201,6 +201,9 @@ Patch6: 0005-fix-lz4-not-found.patch %ifarch loongarch64 Patch5: 9001-add-supprot-for-loongarch64.patch %endif +%ifarch riscv64 +Patch9002: 9002-fix-riscv64-build.patch +%endif %if 0%{?suse_version} # _insert_obs_source_lines_here @@ -280,7 +283,9 @@ BuildRequires: snappy-devel BuildRequires: sqlite-devel BuildRequires: sudo BuildRequires: pkgconfig(udev) +%ifarch %{valgrind_arches} BuildRequires: valgrind-devel +%endif BuildRequires: which BuildRequires: xfsprogs-devel BuildRequires: xmlstarlet @@ -2638,6 +2643,10 @@ exit 0 %{_datadir}/snmp/mibs %changelog +* Wed Sep 18 2024 laokz - 2:18.2.2-6 +- let BuildRequires:valgrind-devel depend on system arch macro +- fix riscv64 build + * Mon Aug 5 2024 wangzengliang - 2:18.2.2-5 - fix lz4-1.10 not found -- Gitee