diff --git a/papi-add-support-riscv64.patch b/papi-add-support-riscv64.patch index 231677ca0d01d5487bd8b4ff658ea55a3a21abb4..5c179c4da46c46cffce9e75780fd6425c05f5a42 100644 --- a/papi-add-support-riscv64.patch +++ b/papi-add-support-riscv64.patch @@ -1,7 +1,34 @@ -diff -ruN papi-6.0.0/src/libpfm4/config.mk papi/src/libpfm4/config.mk ---- papi-6.0.0/src/libpfm4/config.mk 2022-10-29 13:04:32.000000000 +0800 -+++ papi/src/libpfm4/config.mk 2023-01-15 21:16:16.101680541 +0800 -@@ -177,6 +177,9 @@ +diff --git a/src/configure b/src/configure +index fb18bf4..4f5ab04 100755 +--- a/src/configure ++++ b/src/configure +@@ -4709,7 +4709,7 @@ _ACEOF + + # First set pthread-mutexes based on arch + case $arch in +- aarch64|arm*|parisc*) ++ aarch64|arm*|parisc*|riscv*) + pthread_mutexes=yes + CFLAGS="$CFLAGS -DUSE_PTHREAD_MUTEXES" + echo "forcing use of pthread mutexes... " >&6 +diff --git a/src/configure.in b/src/configure.in +index f78cca2..9b4ae9f 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -410,7 +410,7 @@ AC_DEFINE_UNQUOTED(CPU,$CPU,[cpu type]) + + # First set pthread-mutexes based on arch + case $arch in +- aarch64|arm*|parisc*) ++ aarch64|arm*|parisc*|riscv*) + pthread_mutexes=yes + CFLAGS="$CFLAGS -DUSE_PTHREAD_MUTEXES" + echo "forcing use of pthread mutexes... " >&6 +diff --git a/src/libpfm4/config.mk b/src/libpfm4/config.mk +index daa982e..8e8e482 100644 +--- a/src/libpfm4/config.mk ++++ b/src/libpfm4/config.mk +@@ -177,6 +177,9 @@ ifeq ($(ARCH),cell) CONFIG_PFMLIB_CELL=y endif @@ -11,10 +38,11 @@ diff -ruN papi-6.0.0/src/libpfm4/config.mk papi/src/libpfm4/config.mk # # you shouldn't have to touch anything beyond this point -diff -ruN papi-6.0.0/src/linux-context.h papi/src/linux-context.h ---- papi-6.0.0/src/linux-context.h 2022-10-29 13:04:32.000000000 +0800 -+++ papi/src/linux-context.h 2023-01-15 21:16:16.101680541 +0800 -@@ -37,6 +37,8 @@ +diff --git a/src/linux-context.h b/src/linux-context.h +index 858c4e9..de52ee4 100644 +--- a/src/linux-context.h ++++ b/src/linux-context.h +@@ -37,6 +37,8 @@ typedef ucontext_t hwd_ucontext_t; #define OVERFLOW_ADDRESS(ctx) ctx.ucontext->uc_mcontext.pc #elif defined(__hppa__) #define OVERFLOW_ADDRESS(ctx) ctx.ucontext->uc_mcontext.sc_iaoq[0] @@ -23,40 +51,23 @@ diff -ruN papi-6.0.0/src/linux-context.h papi/src/linux-context.h #else #error "OVERFLOW_ADDRESS() undefined!" #endif -diff -ruN papi-6.0.0/src/linux-timer.c papi/src/linux-timer.c ---- papi-6.0.0/src/linux-timer.c 2022-10-29 13:04:32.000000000 +0800 -+++ papi/src/linux-timer.c 2023-01-15 21:16:16.101680541 +0800 -@@ -288,6 +288,27 @@ - return 0; +diff --git a/src/linux-timer.c b/src/linux-timer.c +index 71b4aa0..97dfc53 100644 +--- a/src/linux-timer.c ++++ b/src/linux-timer.c +@@ -281,7 +281,7 @@ static inline long long get_cycles() + return retval; } -+/************************/ -+/* riscv64 get_cycles() */ -+/************************/ -+ -+#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64 -+static inline long long -+get_cycles( void ) -+{ -+ register unsigned long ret; -+ -+ __asm__ __volatile__ ("rdcycle %0" : "=r" (ret)); -+ -+ return ret; -+} -+ -+/* -+ * TODO: riscv32 implementation can be done following example in: -+ * Volume I: RISC-V User-Level ISA V2.2 -+ * 2.8 Control and Status Register Instructions -+ * Timers and Counters -+ */ - - #elif !defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_CLOCK_GETTIME) - #error "No get_cycles support for this architecture. " -diff -ruN papi-6.0.0/src/mb.h papi/src/mb.h ---- papi-6.0.0/src/mb.h 2022-10-29 13:04:32.000000000 +0800 -+++ papi/src/mb.h 2023-01-15 21:16:16.101680541 +0800 +-#elif (defined(__arm__) || defined(__mips__) || defined(__hppa__)) ++#elif (defined(__arm__) || defined(__mips__) || defined(__hppa__) || defined(__riscv)) + static inline long long + get_cycles( void ) + { +diff --git a/src/mb.h b/src/mb.h +index 1019691..0b82a9d 100644 +--- a/src/mb.h ++++ b/src/mb.h @@ -39,6 +39,9 @@ #elif defined(__aarch64__) #define rmb() asm volatile("dmb ld" ::: "memory") diff --git a/papi.spec b/papi.spec index ae02e82d9d1394544ab41bb741a3be4eb8ef95ae..d4dec4998ba5a94c959daf8b896fcd5a4d05b541 100644 --- a/papi.spec +++ b/papi.spec @@ -1,6 +1,6 @@ Name: papi Version: 6.0.0 -Release: 1 +Release: 2 Summary: Performance Application Programming Interface License: BSD URL: http://icl.cs.utk.edu/papi/ @@ -83,6 +83,9 @@ chrpath --delete $RPM_BUILD_ROOT%{_libdir}/*.so* %{_mandir}/man3/* %changelog +* Fri Mar 24 2023 misaka00251 - 6.0.0-2 +- Update riscv64 patch + * Wed Oct 26 2022 hua - 6.0.0-1 - upgrade version to 6.0.0