diff --git a/xxhash.spec b/xxhash.spec index a1bf827..7d88ab3 100644 --- a/xxhash.spec +++ b/xxhash.spec @@ -59,30 +59,32 @@ Headers and other development files for xxHash. %autosetup -p1 -n xxHash-%{version} %build +# upstream make -O3 mandatory to get performance gain +tmpflags="$(echo %{optflags} | sed 's,-O2,-O3,g')" # ALLOW_AVX just means "we guarantee we policed our %%optflags". -export CFLAGS="%{optflags} -DXXH_X86DISPATCH_ALLOW_AVX=1" -export CXXFLAGS="$CFLAGS" +export CFLAGS="${tmpflags} -DXXH_X86DISPATCH_ALLOW_AVX=1" +export CXXFLAGS="${CFLAGS}" export LDFLAGS="%{?build_ldflags}" # DISPATCH=1 if you want AVX2/AVX512. But it does not seem to perform any # better than the lowest-denomimation code on at least the 1135G7 and 5950X # CPUs, and for both LP64 as well as ILP32 — it seems to be all within margin # of error. -%make_build prefix=%{_prefix} libdir=%{_libdir} +%make_build prefix=%{_prefix} libdir=%{_libdir} DISPATCH=1 %install -export CFLAGS="%{optflags} -DXXH_X86DISPATCH_ALLOW_AVX=1" -export CXXFLAGS="%{optflags}" +export CFLAGS="${tmpflags} -DXXH_X86DISPATCH_ALLOW_AVX=1" +export CXXFLAGS="${CFLAGS}" export LDFLAGS="%{?build_ldflags}" -%make_install prefix=%{_prefix} libdir=%{_libdir} +%make_install prefix=%{_prefix} libdir=%{_libdir} DISPATCH=1 rm -rf %{buildroot}%{_libdir}/libxxhash.a %check -export CFLAGS="%{optflags}" -export CXXFLAGS="%{optflags}" +export CFLAGS="${tmpflags}" +export CXXFLAGS="${CFLAGS}" export LDFLAGS="%{?build_ldflags}" # not safe for parallel execution as it removes xxhash.o and recreates it with different flags # the list is taken from test-all with non-working/irrelevant ones (such as ones that change the toolchain) removed -%make_build -j1 test test-unicode listL120 trailingWhitespace test-xxh-nnn-sums +%make_build -j1 DISPATCH=1 test test-unicode listL120 trailingWhitespace test-xxh-nnn-sums %ldconfig_scriptlets -n libxxhash0 @@ -104,6 +106,7 @@ export LDFLAGS="%{?build_ldflags}" %files devel %{_includedir}/xxhash.h %{_includedir}/xxh3.h +%{_includedir}/xxh_x86dispatch.h %{_libdir}/pkgconfig/libxxhash.pc %{_libdir}/libxxhash.so