Add -no-sse patch to fix FTBFS on non-x86 arches.

This commit is contained in:
Jerry James 2018-10-31 21:04:06 -06:00
parent 9257eb278f
commit 31ee134bbf
2 changed files with 55 additions and 6 deletions

49
z3-no-sse.patch Normal file
View File

@ -0,0 +1,49 @@
--- scripts/mk_util.py.orig 2018-10-15 13:52:38.000000000 -0600
+++ scripts/mk_util.py 2018-10-31 19:27:59.067093823 -0600
@@ -112,7 +112,7 @@ GUARD_CF=False
ALWAYS_DYNAMIC_BASE=False
FPMATH="Default"
-FPMATH_FLAGS="-mfpmath=sse -msse -msse2"
+FPMATH_FLAGS=""
def check_output(cmd):
@@ -294,10 +294,10 @@ def test_fpmath(cc):
t = TempFile('tstsse.cpp')
t.add('int main() { return 42; }\n')
t.commit()
- if exec_compiler_cmd([cc, CPPFLAGS, 'tstsse.cpp', LDFLAGS, '-mfpmath=sse -msse -msse2']) == 0:
+ if None:
FPMATH_FLAGS="-mfpmath=sse -msse -msse2"
return "SSE2-GCC"
- elif exec_compiler_cmd([cc, CPPFLAGS, 'tstsse.cpp', LDFLAGS, '-msse -msse2']) == 0:
+ elif None:
FPMATH_FLAGS="-msse -msse2"
return "SSE2-CLANG"
elif exec_compiler_cmd([cc, CPPFLAGS, 'tstsse.cpp', LDFLAGS, '-mfpu=vfp -mfloat-abi=hard']) == 0:
--- src/util/hwf.cpp.orig 2018-10-15 13:52:38.000000000 -0600
+++ src/util/hwf.cpp 2018-10-31 19:28:42.528890124 -0600
@@ -46,9 +46,9 @@ Revision History:
// clear to the compiler what instructions should be used. E.g., for sqrt(), the Windows compiler selects
// the x87 FPU, even when /arch:SSE2 is on.
// Luckily, these are kind of standardized, at least for Windows/Linux/macOS.
-#ifdef __clang__
+//#ifdef __clang__
#undef USE_INTRINSICS
-#endif
+//#endif
#ifdef USE_INTRINSICS
#include <emmintrin.h>
--- src/util/mpz.cpp.orig 2018-10-15 13:52:38.000000000 -0600
+++ src/util/mpz.cpp 2018-10-31 19:40:55.519174699 -0600
@@ -30,7 +30,7 @@ Revision History:
#else
#error No multi-precision library selected.
#endif
-#include <immintrin.h>
+
// Available GCD algorithms
// #define EUCLID_GCD

12
z3.spec
View File

@ -1,4 +1,4 @@
%global medtag 3b1b82bef05a
%global medtag b301a59899ff
Name: z3
Version: 4.8.1
@ -8,6 +8,8 @@ Summary: Satisfiability Modulo Theories (SMT) solver
License: MIT
URL: https://github.com/Z3Prover/z3
Source0: https://github.com/Z3Prover/z3/archive/%{name}-%{version}.tar.gz
# Do not try to build with SSE2 support on non-x86 arches.
Patch0: %{name}-no-sse.patch
BuildRequires: doxygen
BuildRequires: gcc-c++
@ -89,6 +91,9 @@ Python 3 interface to z3.
%prep
%setup -q -n %{name}-%{name}-%{version}
%ifnarch %{ix86} x86_64
%patch0
%endif
# Install python objects into the right place, enable verbose builds, use
# Fedora CFLAGS, preserve timestamps when installing, include the entire
@ -108,11 +113,6 @@ sed -e "s|^\(PYTHON_PACKAGE_DIR=\).*|\1'%{python3_sitearch}'|" \
-e "s/OCAML_FLAGS = ''/OCAML_FLAGS = '-g'/" \
-i scripts/mk_util.py
# Do not try to build with SSE2 support on non-x86 arches.
%ifnarch %{ix86} x86_64
sed -i 's/exec_compiler_cmd.*-msse.*:/None:/' scripts/mk_util.py
%endif
# Comply with the Java packaging guidelines
sed -e 's,\(System\.load\)Library("\(.*\)"),\1("%{_libdir}/z3/\2.so"),' \
-i scripts/update_api.py