diff --git a/reproducible.patch b/reproducible.patch new file mode 100644 index 0000000..d742ebb --- /dev/null +++ b/reproducible.patch @@ -0,0 +1,48 @@ +https://github.com/Genivia/ugrep/pull/50 + +From e5413eeb4a98339587e9b32fe098e305b2bb9092 Mon Sep 17 00:00:00 2001 +From: "Bernhard M. Wiedemann" +Date: Sat, 4 Jul 2020 06:18:32 +0200 +Subject: [PATCH] Disable march=native for SSE2 + +Without this patch, the code would only build binaries with SSE2, +if the build machine CPU supported SSE2. + +And through the -march=native flag, it would then use more CPU features +available on the build CPU that might not be available +on the target machine CPU. That can cause an illegal instruction +exception on the target machine. + +This patch changes behaviour so that only configure options determine the +result of the build, regarding SSE2. + +See https://reproducible-builds.org/ for why this is good. + +This PR was done while working on reproducible builds for openSUSE. +--- + configure | 4 ++-- + configure.ac | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +Index: ugrep-2.3.2/configure +=================================================================== +--- ugrep-2.3.2.orig/configure ++++ ugrep-2.3.2/configure +@@ -7708,7 +7709,7 @@ $as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} supports SSE2 intrinsics" >&5 + $as_echo_n "checking whether ${CXX} supports SSE2 intrinsics... " >&6; } + save_CXXFLAGS=$CXXFLAGS +- CXXFLAGS="-march=native" ++ CXXFLAGS="-msse2" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include +@@ -7730,7 +7731,7 @@ rm -f core conftest.err conftest.$ac_obj + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msse2_ok" >&5 + $as_echo "$msse2_ok" >&6; } + if test "x$msse2_ok" = "xyes"; then +- SIMD_FLAGS="-march=native -msse2 -DHAVE_SSE2" ++ SIMD_FLAGS="-msse2 -DHAVE_SSE2" + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 diff --git a/ugrep.changes b/ugrep.changes index dd14f89..4fbe408 100644 --- a/ugrep.changes +++ b/ugrep.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Jul 5 04:34:08 UTC 2020 - Bernhard Wiedemann + +- Disable avx +- Add reproducible.patch to drop march=native + to make package build reproducible (boo#1100677) + ------------------------------------------------------------------- Tue Jun 30 16:40:55 UTC 2020 - Andreas Stieger diff --git a/ugrep.spec b/ugrep.spec index 1269212..9e9a6d5 100644 --- a/ugrep.spec +++ b/ugrep.spec @@ -24,6 +24,7 @@ License: BSD-3-Clause Group: Productivity/File utilities URL: https://github.com/Genivia/ugrep Source: https://github.com/Genivia/ugrep/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: reproducible.patch BuildRequires: gcc-c++ BuildRequires: pkgconfig BuildRequires: pkgconfig(bzip2) @@ -38,9 +39,11 @@ fuzzy search. %prep %setup -q +%patch0 -p1 %build %configure \ + --disable-avx \ --enable-color %make_build