Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
Jaroslav Škarvada
507b60f474 Re-enabled tests, dropped compiler flags workaround, backport from f44 2025-08-12 21:57:33 +02:00
Jaroslav Škarvada
2bdec42289 Fixed license tag
Resolves: rhbz#2346827
2025-03-12 16:27:33 +01:00
2 changed files with 102 additions and 12 deletions

View file

@ -0,0 +1,87 @@
From 080786fb620f30a2f22e7c8dd01ce2ae3818bf5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marcus=20M=C3=BCller?= <mmueller@gnuradio.org>
Date: Sat, 9 Aug 2025 14:58:16 +0200
Subject: [PATCH] rotator2: disable SSE 4.1 kernels, wildly incorrect results
in ctest
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
see https://github.com/gnuradio/volk/issues/794
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
---
kernels/volk/volk_32fc_s32fc_rotator2puppet_32fc.h | 4 ++--
kernels/volk/volk_32fc_s32fc_x2_rotator2_32fc.h | 4 ++--
kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/kernels/volk/volk_32fc_s32fc_rotator2puppet_32fc.h b/kernels/volk/volk_32fc_s32fc_rotator2puppet_32fc.h
index 1ae8ad9..9213065 100644
--- a/kernels/volk/volk_32fc_s32fc_rotator2puppet_32fc.h
+++ b/kernels/volk/volk_32fc_s32fc_rotator2puppet_32fc.h
@@ -55,7 +55,7 @@ static inline void volk_32fc_s32fc_rotator2puppet_32fc_neon(lv_32fc_t* outVector
#endif /* LV_HAVE_NEON */
-#ifdef LV_HAVE_SSE4_1
+#ifdef LV_HAVE_SSE4_1__DISABLED
#include <smmintrin.h>
static inline void
@@ -75,7 +75,7 @@ volk_32fc_s32fc_rotator2puppet_32fc_a_sse4_1(lv_32fc_t* outVector,
#endif /* LV_HAVE_SSE4_1 */
-#ifdef LV_HAVE_SSE4_1
+#ifdef LV_HAVE_SSE4_1__DISABLED
#include <smmintrin.h>
static inline void
volk_32fc_s32fc_rotator2puppet_32fc_u_sse4_1(lv_32fc_t* outVector,
diff --git a/kernels/volk/volk_32fc_s32fc_x2_rotator2_32fc.h b/kernels/volk/volk_32fc_s32fc_x2_rotator2_32fc.h
index e668e3c..0f63673 100644
--- a/kernels/volk/volk_32fc_s32fc_x2_rotator2_32fc.h
+++ b/kernels/volk/volk_32fc_s32fc_x2_rotator2_32fc.h
@@ -204,7 +204,7 @@ static inline void volk_32fc_s32fc_x2_rotator2_32fc_neon(lv_32fc_t* outVector,
#endif /* LV_HAVE_NEON */
-#ifdef LV_HAVE_SSE4_1
+#ifdef LV_HAVE_SSE4_1__DISABLED
#include <smmintrin.h>
static inline void volk_32fc_s32fc_x2_rotator2_32fc_a_sse4_1(lv_32fc_t* outVector,
@@ -307,7 +307,7 @@ static inline void volk_32fc_s32fc_x2_rotator2_32fc_a_sse4_1(lv_32fc_t* outVecto
#endif /* LV_HAVE_SSE4_1 for aligned */
-#ifdef LV_HAVE_SSE4_1
+#ifdef LV_HAVE_SSE4_1__DISABLED
#include <smmintrin.h>
static inline void volk_32fc_s32fc_x2_rotator2_32fc_u_sse4_1(lv_32fc_t* outVector,
diff --git a/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h b/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
index c0def35..4603ecc 100644
--- a/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
+++ b/kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h
@@ -113,7 +113,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_neon(lv_32fc_t* outVector,
#endif /* LV_HAVE_NEON */
-#ifdef LV_HAVE_SSE4_1
+#ifdef LV_HAVE_SSE4_1__DISABLED
static inline void volk_32fc_s32fc_x2_rotator_32fc_a_sse4_1(lv_32fc_t* outVector,
const lv_32fc_t* inVector,
@@ -128,7 +128,7 @@ static inline void volk_32fc_s32fc_x2_rotator_32fc_a_sse4_1(lv_32fc_t* outVector
#endif /* LV_HAVE_SSE4_1 for aligned */
-#ifdef LV_HAVE_SSE4_1
+#ifdef LV_HAVE_SSE4_1__DISABLED
static inline void volk_32fc_s32fc_x2_rotator_32fc_u_sse4_1(lv_32fc_t* outVector,
const lv_32fc_t* inVector,
--
2.50.1

View file

@ -1,12 +1,15 @@
Name: volk
Version: 3.1.2
Release: 5%{?dist}
Release: 7%{?dist}
Summary: The Vector Optimized Library of Kernels
License: GPL-3.0-or-later
License: LGPL-3.0-or-later
URL: https://github.com/gnuradio/%{name}
Source0: https://github.com/gnuradio/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz
Source1: https://github.com/gnuradio/volk/releases/download/v%{version}/%{name}-%{version}.tar.gz.asc
Source2: https://github.com/gnuradio/volk/releases/download/v2.4.1/gpg_volk_release_key.asc
# Patches:
# https://github.com/gnuradio/volk/issues/794
Patch1: 0001-rotator2-disable-SSE-4.1-kernels-wildly-incorrect-re.patch
BuildRequires: gnupg2
BuildRequires: make
@ -64,22 +67,15 @@ sed -i '1 {/#!\s*\/usr\/bin\/env\s\+python/ d}' __init__.py cfg.py
popd
%build
# workaround, the code is not yet compatible with the strict-aliasing
export CFLAGS="%{optflags} -fno-strict-aliasing"
export CXXFLAGS="$CFLAGS"
%cmake
%cmake_build
# Use make_build for EL8 compat
%make_build -C %{__cmake_builddir} volk_doc
# temporally disabled the testsuite due to https://github.com/gnuradio/volk/issues/442
# gnuradio (and all volk consumers) could coredump on s390x and ppc64le under some
# circumstances, see https://bugzilla.redhat.com/show_bug.cgi?id=1917625#c6
#%%check
#cd %{__cmake_builddir}
#make test
%check
cd %{__cmake_builddir}
ctest --output-on-failure
%install
@ -111,6 +107,13 @@ cp -a %{__cmake_builddir}/html %{buildroot}%{_docdir}/%{name}
%changelog
* Tue Aug 12 2025 Jaroslav Škarvada <jskarvad@redhat.com> - 3.1.2-7
- Re-enabled tests, dropped compiler flags workaround, backport from f44
* Wed Mar 12 2025 Jaroslav Škarvada <jskarvad@redhat.com> - 3.1.2-6
- Fixed license tag
Resolves: rhbz#2346827
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild