[packages/highway] - float16 patch to fix x86 build with gcc 12+ and sse2 not enabled - no-avx patch to disable test fa

qboosh qboosh at pld-linux.org
Mon Aug 21 22:10:08 CEST 2023


commit 96fad748e1db24eae03762c40a632e4e1c8ba507
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon Aug 21 22:02:32 2023 +0200

    - float16 patch to fix x86 build with gcc 12+ and sse2 not enabled
    - no-avx patch to disable test failing on CPU without AVX
    - release 2

 highway-float16.patch | 11 +++++++++++
 highway-no-avx.patch  | 11 +++++++++++
 highway.spec          | 11 ++++++++++-
 3 files changed, 32 insertions(+), 1 deletion(-)
---
diff --git a/highway.spec b/highway.spec
index d517df7..dd2b2aa 100644
--- a/highway.spec
+++ b/highway.spec
@@ -1,24 +1,28 @@
 #
 # Conditional build:
 %bcond_without	apidocs		# API documentation
+%bcond_with	sse2		# SSE2 instructions on x86/x32
 %bcond_without	tests		# don't build tests
 #
 Summary:	Efficient and performance-portable SIMD
 Summary(pl.UTF-8):	Wydajne i przenośne operacje SIMD
 Name:		highway
 Version:	1.0.6
-Release:	1
+Release:	2
 License:	Apache v2.0
 Group:		Libraries
 #Source0Download: https://github.com/google/highway/releases
 Source0:	https://github.com/google/highway/archive/%{version}/%{name}-%{version}.tar.gz
 # Source0-md5:	405abf8d94b618befd44b2cb60a90c0e
+Patch0:		%{name}-float16.patch
+Patch1:		%{name}-no-avx.patch
 URL:		https://github.com/google/highway
 BuildRequires:	cmake >= 3.10
 %{?with_tests:BuildRequires:	gtest-devel}
 BuildRequires:	libstdc++-devel >= 6:4.7
 BuildRequires:	rpm-build >= 4.6
 BuildRequires:	rpmbuild(macros) >= 1.742
+%{?with_sse2:Requires:	cpuinfo(sse2)}
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -83,10 +87,15 @@ Dokumentacja API biblioteki Highway.
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
 
 %build
 install -d build
 cd build
+%if %{with sse2}
+CXXFLAGS="%{rpmcxxflags} -msse2"
+%endif
 %cmake .. \
 	%{cmake_on_off tests BUILD_TESTING} \
 	-DCMAKE_INSTALL_INCLUDEDIR=include \
diff --git a/highway-float16.patch b/highway-float16.patch
new file mode 100644
index 0000000..83a8519
--- /dev/null
+++ b/highway-float16.patch
@@ -0,0 +1,11 @@
+--- highway-1.0.6/hwy/base.h.orig	2023-08-11 15:54:08.000000000 +0200
++++ highway-1.0.6/hwy/base.h	2023-08-21 20:19:20.042867861 +0200
+@@ -381,7 +381,7 @@ using float16_t = __fp16;
+ //    which is missing __extendhfsf2.
+ #elif (                                                                        \
+     (HWY_ARCH_RVV && defined(__riscv_zvfh) && HWY_COMPILER_CLANG) ||           \
+-    (HWY_ARCH_X86 && ((HWY_COMPILER_CLANG >= 1600 && !HWY_COMPILER_CLANGCL) || \
++    (HWY_ARCH_X86 && defined(__sse2__) && ((HWY_COMPILER_CLANG >= 1600 && !HWY_COMPILER_CLANGCL) || \
+                       HWY_COMPILER_GCC_ACTUAL >= 1200)))
+ using float16_t = _Float16;
+ // 3) Otherwise emulate
diff --git a/highway-no-avx.patch b/highway-no-avx.patch
new file mode 100644
index 0000000..583cb56
--- /dev/null
+++ b/highway-no-avx.patch
@@ -0,0 +1,11 @@
+With gcc 13 AVX is used in static initialization in math_test.cc
+--- highway-1.0.6/CMakeLists.txt.orig	2023-08-11 15:54:08.000000000 +0200
++++ highway-1.0.6/CMakeLists.txt	2023-08-21 21:31:34.886441037 +0200
+@@ -564,7 +564,6 @@ list(APPEND HWY_TEST_FILES
+   hwy/contrib/image/image_test.cc
+   # Disabled due to SIGILL in clang7 debug build during gtest discovery phase,
+   # not reproducible locally. Still tested via bazel build.
+-  hwy/contrib/math/math_test.cc
+   hwy/contrib/sort/sort_test.cc
+   hwy/contrib/sort/bench_sort.cc
+   hwy/contrib/unroller/unroller_test.cc
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/highway.git/commitdiff/96fad748e1db24eae03762c40a632e4e1c8ba507



More information about the pld-cvs-commit mailing list