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 unified 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,17 +1,16 @@ @@ -1,17 +1,16 @@
1# $NetBSD: Makefile,v 1.2 2020/12/04 20:45:29 nia Exp $ 1# $NetBSD: Makefile,v 1.3 2020/12/14 19:04:40 tnn Exp $
2 2
3DISTNAME= volk-2.3.0 3DISTNAME= volk-2.4.0
4PKGREVISION= 1 
5CATEGORIES= math ham 4CATEGORIES= math ham
6MASTER_SITES= ${MASTER_SITE_GITHUB:=gnuradio/} 5MASTER_SITES= ${MASTER_SITE_GITHUB:=gnuradio/}
7GITHUB_TAG= v${PKGVERSION_NOREV} 6GITHUB_TAG= v${PKGVERSION_NOREV}
8 7
9MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= https://www.libvolk.org/ 9HOMEPAGE= https://www.libvolk.org/
11COMMENT= The Vector Optimized Library of Kernels 10COMMENT= The Vector Optimized Library of Kernels
12LICENSE= gnu-gpl-v3 11LICENSE= gnu-gpl-v3
13 12
14BUILD_DEPENDS+= ${PYPKGPREFIX}-mako-[0-9]*:../../devel/py-mako 13BUILD_DEPENDS+= ${PYPKGPREFIX}-mako-[0-9]*:../../devel/py-mako
15 14
16USE_CMAKE= yes 15USE_CMAKE= yes
17USE_LANGUAGES= c c++ 16USE_LANGUAGES= c c++
@@ -19,14 +18,15 @@ USE_TOOLS+= pkg-config @@ -19,14 +18,15 @@ USE_TOOLS+= pkg-config
19 18
20# XXX this doesn't work because VolkPython.cmake doesn't conform 19# XXX this doesn't work because VolkPython.cmake doesn't conform
21# to PEP 3147 (doesn't place files in __pycache__ when using python 3) 20# to PEP 3147 (doesn't place files in __pycache__ when using python 3)
22# 21#
23# PY_PATCHPLIST= yes 22# PY_PATCHPLIST= yes
24#.include "../../lang/python/extension.mk" 23#.include "../../lang/python/extension.mk"
25# 24#
26# So do it manually instead: 25# So do it manually instead:
27.include "../../lang/python/application.mk" 26.include "../../lang/python/application.mk"
28PLIST_SUBST+= PYSITELIB=${PYSITELIB} 27PLIST_SUBST+= PYSITELIB=${PYSITELIB}
29 28
30.include "../../devel/orc/buildlink3.mk" 29.include "../../devel/orc/buildlink3.mk"
31.include "../../devel/boost-libs/buildlink3.mk" 30.include "../../devel/boost-libs/buildlink3.mk"
 31.include "../../devel/cpu_features/buildlink3.mk"
32.include "../../mk/bsd.pkg.mk" 32.include "../../mk/bsd.pkg.mk"

cvs diff -r1.1 -r1.2 pkgsrc/math/volk/PLIST (expand / switch to unified 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,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.1 2020/08/01 04:35:09 tnn Exp $ 1@comment $NetBSD: PLIST,v 1.2 2020/12/14 19:04:40 tnn Exp $
2bin/volk-config-info 2bin/volk-config-info
3bin/volk_modtool 3bin/volk_modtool
4bin/volk_profile 4bin/volk_profile
5include/volk/constants.h 5include/volk/constants.h
6include/volk/saturation_arithmetic.h 6include/volk/saturation_arithmetic.h
7include/volk/volk.h 7include/volk/volk.h
8include/volk/volk_16i_32fc_dot_prod_32fc.h 8include/volk/volk_16i_32fc_dot_prod_32fc.h
9include/volk/volk_16i_branch_4_state_8.h 9include/volk/volk_16i_branch_4_state_8.h
10include/volk/volk_16i_convert_8i.h 10include/volk/volk_16i_convert_8i.h
11include/volk/volk_16i_max_star_16i.h 11include/volk/volk_16i_max_star_16i.h
12include/volk/volk_16i_max_star_horizontal_16i.h 12include/volk/volk_16i_max_star_horizontal_16i.h
13include/volk/volk_16i_permute_and_scalar_add.h 13include/volk/volk_16i_permute_and_scalar_add.h
14include/volk/volk_16i_s32f_convert_32f.h 14include/volk/volk_16i_s32f_convert_32f.h
@@ -148,26 +148,26 @@ include/volk/volk_config_fixed.h @@ -148,26 +148,26 @@ include/volk/volk_config_fixed.h
148include/volk/volk_cpu.h 148include/volk/volk_cpu.h
149include/volk/volk_malloc.h 149include/volk/volk_malloc.h
150include/volk/volk_neon_intrinsics.h 150include/volk/volk_neon_intrinsics.h
151include/volk/volk_prefs.h 151include/volk/volk_prefs.h
152include/volk/volk_sse3_intrinsics.h 152include/volk/volk_sse3_intrinsics.h
153include/volk/volk_sse_intrinsics.h 153include/volk/volk_sse_intrinsics.h
154include/volk/volk_typedefs.h 154include/volk/volk_typedefs.h
155include/volk/volk_version.h 155include/volk/volk_version.h
156lib/cmake/volk/VolkConfig.cmake 156lib/cmake/volk/VolkConfig.cmake
157lib/cmake/volk/VolkConfigVersion.cmake 157lib/cmake/volk/VolkConfigVersion.cmake
158lib/cmake/volk/VolkTargets-release.cmake 158lib/cmake/volk/VolkTargets-release.cmake
159lib/cmake/volk/VolkTargets.cmake 159lib/cmake/volk/VolkTargets.cmake
160lib/libvolk.so 160lib/libvolk.so
161lib/libvolk.so.2.3 161lib/libvolk.so.2.4
162lib/pkgconfig/volk.pc 162lib/pkgconfig/volk.pc
163${PYSITELIB}/volk_modtool/__init__.py 163${PYSITELIB}/volk_modtool/__init__.py
164${PYSITELIB}/volk_modtool/__init__.pyc 164${PYSITELIB}/volk_modtool/__init__.pyc
165${PYSITELIB}/volk_modtool/__init__.pyo 165${PYSITELIB}/volk_modtool/__init__.pyo
166${PYSITELIB}/volk_modtool/cfg.py 166${PYSITELIB}/volk_modtool/cfg.py
167${PYSITELIB}/volk_modtool/cfg.pyc 167${PYSITELIB}/volk_modtool/cfg.pyc
168${PYSITELIB}/volk_modtool/cfg.pyo 168${PYSITELIB}/volk_modtool/cfg.pyo
169${PYSITELIB}/volk_modtool/volk_modtool_generate.py 169${PYSITELIB}/volk_modtool/volk_modtool_generate.py
170${PYSITELIB}/volk_modtool/volk_modtool_generate.pyc 170${PYSITELIB}/volk_modtool/volk_modtool_generate.pyc
171${PYSITELIB}/volk_modtool/volk_modtool_generate.pyo 171${PYSITELIB}/volk_modtool/volk_modtool_generate.pyo
172@pkgdir include/volk/asm/orc 172@pkgdir include/volk/asm/orc
173@pkgdir include/volk/asm/neon 173@pkgdir include/volk/asm/neon

cvs diff -r1.1 -r1.2 pkgsrc/math/volk/buildlink3.mk (expand / switch to unified 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,14 +1,15 @@ @@ -1,14 +1,15 @@
1# $NetBSD: buildlink3.mk,v 1.1 2020/08/01 04:35:09 tnn Exp $ 1# $NetBSD: buildlink3.mk,v 1.2 2020/12/14 19:04:40 tnn Exp $
2 2
3BUILDLINK_TREE+= volk 3BUILDLINK_TREE+= volk
4 4
5.if !defined(VOLK_BUILDLINK3_MK) 5.if !defined(VOLK_BUILDLINK3_MK)
6VOLK_BUILDLINK3_MK:= 6VOLK_BUILDLINK3_MK:=
7 7
8BUILDLINK_API_DEPENDS.volk+= volk>=2.3.0 8BUILDLINK_API_DEPENDS.volk+= volk>=2.3.0
 9BUILDLINK_ABI_DEPENDS.volk+= volk>=2.4.0
9BUILDLINK_PKGSRCDIR.volk?= ../../math/volk 10BUILDLINK_PKGSRCDIR.volk?= ../../math/volk
10 11
11.include "../../devel/orc/buildlink3.mk" 12.include "../../devel/orc/buildlink3.mk"
12.endif # VOLK_BUILDLINK3_MK 13.endif # VOLK_BUILDLINK3_MK
13 14
14BUILDLINK_TREE+= -volk 15BUILDLINK_TREE+= -volk

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