diff --git a/ntl-loadtime-cpu.patch b/ntl-loadtime-cpu.patch index 481d8fd..3bb4d9b 100644 --- a/ntl-loadtime-cpu.patch +++ b/ntl-loadtime-cpu.patch @@ -1,6 +1,6 @@ ---- doc/config.txt.orig 2019-09-24 18:24:43.000000000 -0600 -+++ doc/config.txt 2019-09-25 08:03:14.097990133 -0600 -@@ -397,6 +397,7 @@ NTL_AVOID_BRANCHING=off +--- doc/config.txt.orig 2021-06-20 15:05:49.000000000 -0600 ++++ doc/config.txt 2021-06-23 19:59:29.902142132 -0600 +@@ -420,6 +420,7 @@ NTL_AVOID_BRANCHING=off NTL_GF2X_NOINLINE=off NTL_GF2X_ALTCODE=off NTL_GF2X_ALTCODE1=off @@ -8,7 +8,7 @@ GMP_INCDIR=$(GMP_PREFIX)/include GMP_LIBDIR=$(GMP_PREFIX)/lib -@@ -711,6 +712,10 @@ NTL_GF2X_ALTCODE1=off +@@ -734,6 +735,10 @@ NTL_GF2X_ALTCODE1=off # Yet another alternative implementation for GF2X multiplication. @@ -19,10 +19,10 @@ ########## More GMP Options: ---- include/NTL/config.h.orig 2019-09-24 18:24:43.000000000 -0600 -+++ include/NTL/config.h 2019-09-25 08:03:14.124989623 -0600 -@@ -513,6 +513,19 @@ to be defined. Of course, to unset a f - +--- include/NTL/config.h.orig 2021-06-20 15:05:49.000000000 -0600 ++++ include/NTL/config.h 2021-06-23 19:59:29.903142133 -0600 +@@ -549,6 +549,19 @@ to be defined. Of course, to unset a f + #error "NTL_SAFE_VECTORS defined but not NTL_STD_CXX11 or NTL_STD_CXX14" #endif +#if 0 @@ -40,9 +40,9 @@ +#endif - /* sanity checks */ ---- include/NTL/ctools.h.orig 2019-09-24 18:24:42.000000000 -0600 -+++ include/NTL/ctools.h 2019-09-25 08:03:14.141989302 -0600 + +--- include/NTL/ctools.h.orig 2021-06-20 15:05:49.000000000 -0600 ++++ include/NTL/ctools.h 2021-06-23 19:59:29.904142134 -0600 @@ -518,6 +518,155 @@ char *_ntl_make_aligned(char *p, long al // this should be big enough to satisfy any SIMD instructions, // and it should also be as big as a cache line @@ -199,8 +199,8 @@ #ifdef NTL_HAVE_BUILTIN_CLZL ---- include/NTL/MatPrime.h.orig 2019-09-24 18:24:43.000000000 -0600 -+++ include/NTL/MatPrime.h 2019-09-25 08:03:14.142989283 -0600 +--- include/NTL/MatPrime.h.orig 2021-06-20 15:05:49.000000000 -0600 ++++ include/NTL/MatPrime.h 2021-06-23 19:59:29.904142134 -0600 @@ -20,7 +20,7 @@ NTL_OPEN_NNS @@ -210,18 +210,18 @@ #define NTL_MatPrime_NBITS (23) #else #define NTL_MatPrime_NBITS NTL_SP_NBITS ---- include/NTL/REPORT_ALL_FEATURES.h.orig 2019-09-24 18:24:43.000000000 -0600 -+++ include/NTL/REPORT_ALL_FEATURES.h 2019-09-25 08:03:14.142989283 -0600 -@@ -55,3 +55,6 @@ - std::cerr << "NTL_HAVE_POSIX_TIME\n"; +--- include/NTL/REPORT_ALL_FEATURES.h.orig 2021-06-20 15:05:49.000000000 -0600 ++++ include/NTL/REPORT_ALL_FEATURES.h 2021-06-23 19:59:29.905142135 -0600 +@@ -63,3 +63,6 @@ + std::cerr << "NTL_HAVE_KMA\n"; #endif +#ifdef NTL_LOADTIME_CPU + std::cerr << "NTL_LOADTIME_CPU\n"; +#endif ---- src/cfile.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/cfile 2019-09-25 08:03:14.142989283 -0600 -@@ -513,6 +513,19 @@ to be defined. Of course, to unset a f +--- src/cfile.orig 2021-06-20 15:05:49.000000000 -0600 ++++ src/cfile 2021-06-23 19:59:29.906142136 -0600 +@@ -449,6 +449,19 @@ to be defined. Of course, to unset a f #endif @@ -240,11 +240,11 @@ +#endif - /* sanity checks */ ---- src/DispSettings.cpp.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/DispSettings.cpp 2019-09-25 08:03:14.143989264 -0600 -@@ -187,6 +187,9 @@ cout << "Performance Options:\n"; - cout << "NTL_GF2X_NOINLINE\n"; + #if @{NTL_CRT_ALTCODE} +--- src/DispSettings.cpp.orig 2021-06-20 15:05:49.000000000 -0600 ++++ src/DispSettings.cpp 2021-06-23 19:59:29.906142136 -0600 +@@ -192,6 +192,9 @@ cout << "Performance Options:\n"; + cout << "NTL_RANDOM_AES256CTR\n"; #endif +#ifdef NTL_LOADTIME_CPU @@ -253,8 +253,8 @@ cout << "***************************/\n"; cout << "\n\n"; ---- src/DoConfig.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/DoConfig 2019-09-25 08:03:14.143989264 -0600 +--- src/DoConfig.orig 2021-06-20 15:05:49.000000000 -0600 ++++ src/DoConfig 2021-06-23 19:59:29.907142137 -0600 @@ -1,6 +1,7 @@ # This is a perl script, invoked from a shell @@ -269,9 +269,9 @@ 'NTL_GF2X_ALTCODE1' => 'off', +'NTL_LOADTIME_CPU' => 'off', + 'NTL_RANDOM_AES256CTR' => 'off', - ); -@@ -175,6 +177,14 @@ if ($MakeVal{'CXXFLAGS'} =~ '-march=') { +@@ -176,6 +178,14 @@ if ($MakeVal{'CXXFLAGS'} =~ '-march=') { $MakeFlag{'NATIVE'} = 'off'; } @@ -286,9 +286,9 @@ # some special MakeVal values that are determined by SHARED ---- src/GF2EX.cpp.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/GF2EX.cpp 2019-09-25 08:03:14.144989246 -0600 -@@ -771,7 +771,7 @@ void mul(GF2EX& c, const GF2EX& a, const +--- src/GF2EX.cpp.orig 2021-06-20 15:05:48.000000000 -0600 ++++ src/GF2EX.cpp 2021-06-23 19:59:29.908142138 -0600 +@@ -801,7 +801,7 @@ void mul(GF2EX& c, const GF2EX& a, const if (GF2E::WordLength() <= 1) use_kron_mul = true; @@ -297,8 +297,8 @@ // With gf2x library and pclmul, KronMul is better in a larger range, but // it is very hard to characterize that range. The following is very // conservative. ---- src/GF2X1.cpp.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/GF2X1.cpp 2019-09-25 08:03:14.145989227 -0600 +--- src/GF2X1.cpp.orig 2021-06-20 15:05:48.000000000 -0600 ++++ src/GF2X1.cpp 2021-06-23 19:59:29.910142141 -0600 @@ -18,7 +18,7 @@ // simple scaling factor for some crossover points: // we use a lower crossover of the underlying multiplication @@ -308,8 +308,8 @@ #define XOVER_SCALE (1L) #else #define XOVER_SCALE (2L) ---- src/GF2X.cpp.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/GF2X.cpp 2019-09-25 08:03:14.146989208 -0600 +--- src/GF2X.cpp.orig 2021-06-20 15:05:48.000000000 -0600 ++++ src/GF2X.cpp 2021-06-23 19:59:29.911142142 -0600 @@ -27,6 +27,22 @@ pclmul_mul1 (unsigned long *c, unsigned _mm_storeu_si128((__m128i*)c, _mm_clmulepi64_si128(aa, bb, 0)); } @@ -652,9 +652,9 @@ void LeftShift(GF2X& c, const GF2X& a, long n) ---- src/InitSettings.cpp.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/InitSettings.cpp 2019-09-25 08:03:14.147989189 -0600 -@@ -184,6 +184,11 @@ int main() +--- src/InitSettings.cpp.orig 2021-06-20 15:05:49.000000000 -0600 ++++ src/InitSettings.cpp 2021-06-23 19:59:29.912142143 -0600 +@@ -190,6 +190,11 @@ int main() cout << "NTL_RANGE_CHECK=0\n"; #endif @@ -666,8 +666,8 @@ // the following are not actual config flags, but help ---- src/mat_lzz_p.cpp.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/mat_lzz_p.cpp 2019-09-25 08:03:14.149989151 -0600 +--- src/mat_lzz_p.cpp.orig 2021-06-20 15:05:48.000000000 -0600 ++++ src/mat_lzz_p.cpp 2021-06-23 19:59:29.915142146 -0600 @@ -9,6 +9,15 @@ #ifdef NTL_HAVE_AVX @@ -1740,9 +1740,9 @@ V <= (MAX_DBL_INT-(p-1))/(p-1) && V*(p-1) <= (MAX_DBL_INT-(p-1))/(p-1)) { ---- src/QuickTest.cpp.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/QuickTest.cpp 2019-09-25 08:03:14.149989151 -0600 -@@ -324,6 +324,9 @@ cerr << "Performance Options:\n"; +--- src/QuickTest.cpp.orig 2021-06-20 15:05:49.000000000 -0600 ++++ src/QuickTest.cpp 2021-06-23 19:59:29.916142147 -0600 +@@ -326,6 +326,9 @@ cerr << "Performance Options:\n"; cerr << "NTL_GF2X_NOINLINE\n"; #endif @@ -1752,8 +1752,8 @@ cerr << "\n\n"; ---- src/WizardAux.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/WizardAux 2019-09-25 08:03:14.149989151 -0600 +--- src/WizardAux.orig 2021-06-20 15:05:49.000000000 -0600 ++++ src/WizardAux 2021-06-23 19:59:29.916142147 -0600 @@ -89,6 +89,7 @@ system("$ARGV[0] InitSettings"); 'NTL_GF2X_NOINLINE' => 0, 'NTL_FFT_BIGTAB' => 0, @@ -1762,8 +1762,8 @@ 'WIZARD_HACK' => '#define NTL_WIZARD_HACK', ---- src/ZZ.cpp.orig 2019-09-24 18:24:42.000000000 -0600 -+++ src/ZZ.cpp 2019-09-25 08:03:14.150989132 -0600 +--- src/ZZ.cpp.orig 2021-06-20 15:05:48.000000000 -0600 ++++ src/ZZ.cpp 2021-06-23 19:59:29.918142149 -0600 @@ -14,6 +14,13 @@ #elif defined(NTL_HAVE_SSSE3) #include @@ -1777,8 +1777,8 @@ +static int have_ssse3 = -1; #endif - -@@ -2343,6 +2350,590 @@ struct RandomStream_impl { + #if defined(NTL_HAVE_KMA) +@@ -3268,6 +3275,590 @@ struct RandomStream_impl { }; diff --git a/ntl.spec b/ntl.spec index cf0bd5a..b3474ac 100644 --- a/ntl.spec +++ b/ntl.spec @@ -1,16 +1,8 @@ - %global multilib_arches %{ix86} x86_64 ppc ppc64 s390 s390x sparcv9 sparc64 -# define include static lib (else undef) -#define static 1 - -%if 0%{?fedora} || 0%{?rhel} >= 7 -%global gf2x 1 -%endif - Summary: High-performance algorithms for vectors, matrices, and polynomials Name: ntl -Version: 11.4.4 +Version: 11.5.1 Release: 1%{?dist} License: LGPLv2+ @@ -24,9 +16,7 @@ Source1: multilib_template.h Patch0: %{name}-loadtime-cpu.patch BuildRequires: gcc-c++ -%if 0%{?gf2x} BuildRequires: gf2x-devel -%endif BuildRequires: gmp-devel BuildRequires: libtool BuildRequires: make @@ -56,19 +46,13 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description devel %{summary}. -%package static -Summary: Static libraries for %{name} -Requires: %{name}-devel%{?_isa} = %{version}-%{release} -#Requires: gmp-devel -%description static -%{summary}. - %prep %autosetup -p0 %build +# TODO: Once we can assume z15, add TUNE=linux-s390x to the flags for s390x pushd src ./configure \ CXX="${CXX-g++}" \ @@ -80,7 +64,7 @@ pushd src LIBDIR=%{_libdir} \ LDLIBS="-lpthread -lm" \ NATIVE=off \ - %{?gf2x:NTL_GF2X_LIB=on} \ + NTL_GF2X_LIB=on \ NTL_STD_CXX14=on \ %ifarch x86_64 NTL_LOADTIME_CPU=on \ @@ -112,9 +96,7 @@ chmod 0755 %{buildroot}%{_libdir}/libntl.so.* # Unpackaged files rm -rfv %{buildroot}%{_docdir}/NTL rm -fv %{buildroot}%{_libdir}/libntl.la -%if ! 0%{?static} rm -fv %{buildroot}%{_libdir}/libntl.a -%endif %ifarch %{multilib_arches} # hack to allow parallel installation of multilib factory-devel @@ -133,20 +115,18 @@ done %files %doc README %license doc/copying.txt -%{_libdir}/libntl.so.43* +%{_libdir}/libntl.so.44* %files devel %doc doc/* %{_includedir}/NTL/ %{_libdir}/libntl.so -%if 0%{?static} -%files static -%{_libdir}/libntl.a -%endif - %changelog +* Tue Jun 29 2021 Jerry James - 11.5.1-1 +- ntl-11.5.1 + * Fri Mar 5 2021 Jerry James - 11.4.4-1 - ntl-11.4.4 diff --git a/sources b/sources index dd76e40..e9362d2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ntl-11.4.4.tar.gz) = ed89d82008ca8785cb3d69de9577f42abe464dabf167ea2aaf801951843fc427d41171cbaac2f0cf68f35110d029cc28a65bd5aad69d30e7312f5ebcb0b58911 +SHA512 (ntl-11.5.1.tar.gz) = cf1f642b8a0f9cdc6dda888e07183817dc67ff494e56a852053aeb15b3d2a0e61fbc05824779c5d1f20b8115fba6f97266acf7e0b0b527c25df5989c86d5928f