From ab4a246b2f5e901b7c0f5629707d4dc613e2aa90 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Jun 02 2018 13:55:44 +0000 Subject: Rebuild for ntl 11.0.0. Also: - Add i686 to the architectures with slow compilers due to FTBFS (bz 1555753). - Work around apparent compiler bug on 32-bit arm (bz 1555151). --- diff --git a/flint-popcnt.patch b/flint-popcnt.patch index 52b76f0..fd70920 100644 --- a/flint-popcnt.patch +++ b/flint-popcnt.patch @@ -1,6 +1,6 @@ --- fmpz/popcnt.c.orig 2015-08-13 10:16:22.000000000 -0600 -+++ fmpz/popcnt.c 2016-04-23 14:50:25.442091489 -0600 -@@ -25,6 +25,54 @@ static __inline__ mp_bitcnt_t shortCount ++++ fmpz/popcnt.c 2018-05-01 21:07:11.375129225 -0600 +@@ -25,6 +25,53 @@ static __inline__ mp_bitcnt_t shortCount } #endif @@ -40,13 +40,12 @@ + } +} + -+static void __attribute__((optimize ("O0"))) -+(*resolve_fmpz_popcnt (void))(void) { ++static mp_bitcnt_t (*resolve_fmpz_popcnt(void))(const fmpz_t c) { + unsigned int eax, ebx, ecx, edx; + return (__get_cpuid(1, &eax, &ebx, &ecx, &edx) && + (ecx & bit_POPCNT) != 0) -+ ? (void (*)(void))&fast_fmpz_popcnt -+ : (void (*)(void))&slow_fmpz_popcnt; ++ ? &fast_fmpz_popcnt ++ : &slow_fmpz_popcnt; +} + +mp_bitcnt_t __attribute__((ifunc ("resolve_fmpz_popcnt"))) @@ -55,7 +54,7 @@ mp_bitcnt_t fmpz_popcnt(const fmpz_t c) { fmpz c1; -@@ -40,3 +88,4 @@ mp_bitcnt_t fmpz_popcnt(const fmpz_t c) +@@ -40,3 +87,4 @@ mp_bitcnt_t fmpz_popcnt(const fmpz_t c) else return mpz_popcount(t); } } diff --git a/flint.spec b/flint.spec index 5c41844..1e6255e 100644 --- a/flint.spec +++ b/flint.spec @@ -7,7 +7,7 @@ Name: flint Version: 2.5.2 -Release: 19%{?dist} +Release: 20%{?dist} Summary: Fast Library for Number Theory License: GPLv2+ URL: http://www.flintlib.org/ @@ -132,7 +132,7 @@ done %build -# We set HAVE_FAST_COMPILER to 0 on ARM, s390, and 32-bit MIPS because +# We set HAVE_FAST_COMPILER to 0 on i686, ARM, s390, and 32-bit MIPS because # otherwise the tests exhaust virtual memory. If other architectures run out #of virtual memory while building flintxx/test/t-fmpzxx.cpp, then do likewise. @@ -148,13 +148,19 @@ sh -x ./configure \ --with-ntl=%{_prefix} \ --enable-cxx \ --extensions=$PWD/hmod_mat \ -%ifarch %{arm} s390 %{mips32} +%ifarch %{arm} + # Work around bz 1555151 + CFLAGS="%{optflags} -D_FILE_OFFSET_BITS=64 -DHAVE_FAST_COMPILER=0 -fno-tree-tail-merge" \ + CXXFLAGS="%{optflags} -D_FILE_OFFSET_BITS=64 -DHAVE_FAST_COMPILER=0 -fno-tree-tail-merge" +%else +%ifarch %{ix86} s390 %{mips32} CFLAGS="%{optflags} -D_FILE_OFFSET_BITS=64 -DHAVE_FAST_COMPILER=0" \ CXXFLAGS="%{optflags} -D_FILE_OFFSET_BITS=64 -DHAVE_FAST_COMPILER=0" %else CFLAGS="%{optflags} -D_FILE_OFFSET_BITS=64" \ CXXFLAGS="%{optflags} -D_FILE_OFFSET_BITS=64" %endif +%endif # FIXME: %%{?_smp_mflags} sometimes fails make verbose LDFLAGS="-Wl,--as-needed $RPM_LD_FLAGS -L%{_libdir}/atlas" \ LIBDIR=%{_lib} @@ -176,7 +182,7 @@ sh -x ./configure \ --with-ntl=%{_prefix} \ --with-gc=%{_prefix} \ --enable-cxx \ -%ifarch %{arm} s390 %{mips32} +%ifarch %{ix86} %{arm} s390 %{mips32} CFLAGS="%{optflags} -D_FILE_OFFSET_BITS=64 -DHAVE_FAST_COMPILER=0" \ CXXFLAGS="%{optflags} -D_FILE_OFFSET_BITS=64 -DHAVE_FAST_COMPILER=0" %else @@ -214,9 +220,8 @@ make check QUIET_CC= QUIET_CXX= QUIET_AR= \ LDFLAGS="-Wl,--as-needed $RPM_LD_FLAGS -L%{_libdir}/atlas" LIBDIR=%{_lib} popd -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%ldconfig_scriptlets %files @@ -242,6 +247,11 @@ popd %changelog +* Sat Jun 2 2018 Jerry James - 2.5.2-20 +- Rebuild for ntl 11.0.0 +- Add i686 to the architectures with slow compilers due to FTBFS (bz 1555753) +- Work around apparent compiler bug on 32-bit arm (bz 1555151) + * Wed Feb 07 2018 Fedora Release Engineering - 2.5.2-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild