The package rpms/flint.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/flint.git/commit/?id=ab4a246b2f5e....
Change:
+%ifarch %{ix86} %{arm} s390 %{mips32}
Thanks.
Full change:
============
commit ab4a246b2f5e901b7c0f5629707d4dc613e2aa90
Author: Jerry James <loganjerry(a)gmail.com>
Date: Sat Jun 2 07:55:44 2018 -0600
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 <loganjerry(a)gmail.com> - 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 <releng(a)fedoraproject.org> - 2.5.2-19
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild