Mon Dec 14 19:04:41 2020 UTC ()
volk: update to 2.4.0

pkgsrc: since the volk release tarball only provides the required cpu_features
library as a git submodule that has to be manually cloned, we instead depend on
devel/cpu_features from pkgsrc and patch the cmake files to accept the static
library as an external dependency.

Documentation
  Update README to be more verbose and to improve usefulness.
Compilers
  AppleClang: Treat AppleClang as Clang.
  Paired with the cpu_features introduction, this enables us to use architecture
    specific kernels on a broader set of platforms.
CMake
  Enable to not install volk_modtool.
  Remove "find_package_handle_standard_args" warning.
cpu_features
  Use cpu_features v0.6.0 as a private submodule to detect available CPU
  features.
  Fix incorrect feature detection for newer AVX versions.
  Circumvent platform specific feature detection.
  Enable more architecture specific kernels on more platforms.
Kernels
  Disable slow and broken SSE4.1 kernel in volk_32fc_x2_dot_prod_32fc
  Adjust min/max for 32f_s32f_convert_8i kernel
  Use INT8_* instead of CHAR_*


(tnn)
diff -r1.2 -r1.3 pkgsrc/math/volk/Makefile
diff -r1.1 -r1.2 pkgsrc/math/volk/PLIST
diff -r1.1 -r1.2 pkgsrc/math/volk/buildlink3.mk
diff -r1.1 -r1.2 pkgsrc/math/volk/distinfo
diff -r0 -r1.1 pkgsrc/math/volk/patches/patch-CMakeLists.txt
diff -r0 -r1.1 pkgsrc/math/volk/patches/patch-lib_CMakeLists.txt

cvs diff -r1.2 -r1.3 pkgsrc/math/volk/Makefile (expand / switch to context diff)
--- pkgsrc/math/volk/Makefile 2020/12/04 20:45:29 1.2
+++ pkgsrc/math/volk/Makefile 2020/12/14 19:04:40 1.3
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.2 2020/12/04 20:45:29 nia Exp $
+# $NetBSD: Makefile,v 1.3 2020/12/14 19:04:40 tnn Exp $
 
-DISTNAME=	volk-2.3.0
-PKGREVISION=	1
+DISTNAME=	volk-2.4.0
 CATEGORIES=	math ham
 MASTER_SITES=	${MASTER_SITE_GITHUB:=gnuradio/}
 GITHUB_TAG=	v${PKGVERSION_NOREV}
@@ -29,4 +28,5 @@
 
 .include "../../devel/orc/buildlink3.mk"
 .include "../../devel/boost-libs/buildlink3.mk"
+.include "../../devel/cpu_features/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"

cvs diff -r1.1 -r1.2 pkgsrc/math/volk/PLIST (expand / switch to context diff)
--- pkgsrc/math/volk/PLIST 2020/08/01 04:35:09 1.1
+++ pkgsrc/math/volk/PLIST 2020/12/14 19:04:40 1.2
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.1 2020/08/01 04:35:09 tnn Exp $
+@comment $NetBSD: PLIST,v 1.2 2020/12/14 19:04:40 tnn Exp $
 bin/volk-config-info
 bin/volk_modtool
 bin/volk_profile
@@ -158,7 +158,7 @@
 lib/cmake/volk/VolkTargets-release.cmake
 lib/cmake/volk/VolkTargets.cmake
 lib/libvolk.so
-lib/libvolk.so.2.3
+lib/libvolk.so.2.4
 lib/pkgconfig/volk.pc
 ${PYSITELIB}/volk_modtool/__init__.py
 ${PYSITELIB}/volk_modtool/__init__.pyc

cvs diff -r1.1 -r1.2 pkgsrc/math/volk/buildlink3.mk (expand / switch to context diff)
--- pkgsrc/math/volk/buildlink3.mk 2020/08/01 04:35:09 1.1
+++ pkgsrc/math/volk/buildlink3.mk 2020/12/14 19:04:40 1.2
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.1 2020/08/01 04:35:09 tnn Exp $
+# $NetBSD: buildlink3.mk,v 1.2 2020/12/14 19:04:40 tnn Exp $
 
 BUILDLINK_TREE+=	volk
 
@@ -6,6 +6,7 @@
 VOLK_BUILDLINK3_MK:=
 
 BUILDLINK_API_DEPENDS.volk+=	volk>=2.3.0
+BUILDLINK_ABI_DEPENDS.volk+=	volk>=2.4.0
 BUILDLINK_PKGSRCDIR.volk?=	../../math/volk
 
 .include "../../devel/orc/buildlink3.mk"

cvs diff -r1.1 -r1.2 pkgsrc/math/volk/distinfo (expand / switch to context diff)
--- pkgsrc/math/volk/distinfo 2020/08/01 04:35:09 1.1
+++ pkgsrc/math/volk/distinfo 2020/12/14 19:04:40 1.2
@@ -1,8 +1,10 @@
-$NetBSD: distinfo,v 1.1 2020/08/01 04:35:09 tnn Exp $
+$NetBSD: distinfo,v 1.2 2020/12/14 19:04:40 tnn Exp $
 
-SHA1 (volk-2.3.0.tar.gz) = c9824143bc8835ca2e9ebb2204dcb8a4836e8958
-RMD160 (volk-2.3.0.tar.gz) = 9cf2d79cdf98ac8b9e935694601f3b33a5852b8d
-SHA512 (volk-2.3.0.tar.gz) = 9e3b405b7be46b4f5ff61a4d42fa9013fc55169bc18c9cf9253e446fe23fd12dc0356adb9aa176e33dfa4cc478e4b9226bee906a2d89ef83bac3b28f52816382
-Size (volk-2.3.0.tar.gz) = 344763 bytes
+SHA1 (volk-2.4.0.tar.gz) = b646d1d52208045b37fc40ffbd9f07c0b04e9ce8
+RMD160 (volk-2.4.0.tar.gz) = 16de9065941f1f0948f1b019542833caa3f968f4
+SHA512 (volk-2.4.0.tar.gz) = 571974e10d664870ff949ca0e79b62905acf5baacbedc951764388dfeeeecd649eccbe60944369cfb49be1f8c67a9ebdac81e2dbeca70eabf513c6c2d32f859e
+Size (volk-2.4.0.tar.gz) = 346354 bytes
+SHA1 (patch-CMakeLists.txt) = fe0571495a1183579dda1a265819f3eb76fe9edf
 SHA1 (patch-include_volk_volk__common.h) = 53e7aa38deaa9cdf68ca12fff6c176be471cf162
 SHA1 (patch-include_volk_volk__complex.h) = 248bf10c03364f7338f03cbaa4ddc8047da9c775
+SHA1 (patch-lib_CMakeLists.txt) = 9cf79e37227c3de1e76610ab01ff43aa9439fcf7

File Added: pkgsrc/math/volk/patches/Attic/patch-CMakeLists.txt
$NetBSD: patch-CMakeLists.txt,v 1.1 2020/12/14 19:04:41 tnn Exp $

Use devel/cpu_features from pkgsrc since the volk release tarball doesn't
bundle it and we need to patch cpu_features anyway.

--- CMakeLists.txt.orig	2020-11-22 16:33:01.000000000 +0000
+++ CMakeLists.txt
@@ -115,13 +115,7 @@ endif(MSVC)
 ########################################################################
 
 # cpu_features
-set(BUILD_PIC ON CACHE BOOL
-    "Build cpu_features with Position Independent Code (PIC)."
-    FORCE)
-set(BUILD_SHARED_LIBS_SAVED "${BUILD_SHARED_LIBS}")
-set(BUILD_SHARED_LIBS OFF)
-add_subdirectory(cpu_features)
-set(BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS_SAVED}")
+find_package(CpuFeatures)
 
 # Python
 include(VolkPython) #sets PYTHON_EXECUTABLE and PYTHON_DASH_B

File Added: pkgsrc/math/volk/patches/Attic/patch-lib_CMakeLists.txt
$NetBSD: patch-lib_CMakeLists.txt,v 1.1 2020/12/14 19:04:41 tnn Exp $

Use devel/cpu_features from pkgsrc since the volk release tarball doesn't
bundle it and we need to patch cpu_features anyway.

--- lib/CMakeLists.txt.orig	2020-11-22 16:33:01.000000000 +0000
+++ lib/CMakeLists.txt
@@ -511,7 +511,7 @@ target_include_directories(volk_obj
     PRIVATE $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
     PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
     PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/kernels>
-    PRIVATE $<TARGET_PROPERTY:cpu_features,INTERFACE_INCLUDE_DIRECTORIES>
+    PRIVATE $<TARGET_PROPERTY:CpuFeatures::cpu_features,INTERFACE_INCLUDE_DIRECTORIES>
     PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
     PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
 )