diff --git a/fftw-3.3.8-sw.patch b/fftw-3.3.8-sw.patch new file mode 100755 index 0000000000000000000000000000000000000000..6d92d13678e3e4c7377d2d2c08c9fb5043e9954a --- /dev/null +++ b/fftw-3.3.8-sw.patch @@ -0,0 +1,53 @@ +diff -Naur fftw-3.3.8.org/kernel/cycle.h fftw-3.3.8.sw/kernel/cycle.h +--- fftw-3.3.8.org/kernel/cycle.h 2022-03-03 08:12:02.740000000 +0000 ++++ fftw-3.3.8.sw/kernel/cycle.h 2022-03-03 08:14:34.660000000 +0000 +@@ -385,6 +385,26 @@ + #define HAVE_TICK_COUNTER + #endif + /*----------------------------------------------------------------*/ ++#if defined(__GNUC__) && defined(__sw_64__) && !defined(HAVE_TICK_COUNTER) ++/* ++ * The 32-bit cycle counter on sw_64 overflows pretty quickly, ++ * unfortunately. A 1GHz machine overflows in 4 seconds. ++ */ ++typedef unsigned int ticks; ++ ++static __inline__ ticks getticks(void) ++{ ++ unsigned long cc; ++ __asm__ __volatile__ ("rtc %0" : "=r"(cc)); ++ return (cc & 0xFFFFFFFF); ++} ++ ++INLINE_ELAPSED(__inline__) ++ ++#define HAVE_TICK_COUNTER ++#endif ++ ++/*----------------------------------------------------------------*/ + #if defined(__GNUC__) && defined(__alpha__) && !defined(HAVE_TICK_COUNTER) + /* + * The 32-bit cycle counter on alpha overflows pretty quickly, +@@ -421,6 +441,22 @@ + #endif + + /*----------------------------------------------------------------*/ ++#if (defined(__DECC) || defined(__DECCXX)) && defined(__sw_64) && defined(HAVE_C_ASM_H) && !defined(HAVE_TICK_COUNTER) ++# include ++typedef unsigned int ticks; ++ ++static __inline ticks getticks(void) ++{ ++ unsigned long cc; ++ cc = asm("rtc %v0"); ++ return (cc & 0xFFFFFFFF); ++} ++ ++INLINE_ELAPSED(__inline) ++ ++#define HAVE_TICK_COUNTER ++#endif ++/*----------------------------------------------------------------*/ + #if (defined(__DECC) || defined(__DECCXX)) && defined(__alpha) && defined(HAVE_C_ASM_H) && !defined(HAVE_TICK_COUNTER) + # include + typedef unsigned int ticks; diff --git a/fftw.spec b/fftw.spec index 6565df0ba1ebedb95a7426d697078db1bc365085..4693921964ba8f4f773165db096ee892cfa0dbf8 100644 --- a/fftw.spec +++ b/fftw.spec @@ -11,11 +11,14 @@ Name: fftw Version: 3.3.8 -Release: 11 +Release: 12 Summary: A C subroutine library for computing the discrete Fourier transform License: GPLv2+ URL: http://www.fftw.org Source0: http://www.fftw.org/fftw-%{version}.tar.gz +%ifarch sw_64 +Patch1: fftw-3.3.8-sw.patch +%endif BuildRequires: gcc-gfortran autoconf automake libtool time perl-interpreter gcc_secure make %global quad 0 @@ -461,6 +464,9 @@ fi %endif %changelog +* Wed Oct 19 2022 wuzx - 3.3.8-12 +- add sw64 patch + * Mon Mar 28 2022 baizhonggui - 3.3.8-11 - Strip the binary fftw*-wisdom* symbol