diff --git a/devel/volk/Makefile b/devel/volk/Makefile index f1387a155ba5..1cbfa4850069 100644 --- a/devel/volk/Makefile +++ b/devel/volk/Makefile @@ -1,21 +1,35 @@ PORTNAME= volk -DISTVERSIONPREFIX= v -DISTVERSION= 2.2.1 +DISTVERSION= 2.5.0 CATEGORIES= devel comms hamradio +MASTER_SITES= https://github.com/gnuradio/${PORTNAME}/releases/download/v${DISTVERSION}/ MAINTAINER= hamradio@FreeBSD.org COMMENT= Vector-Optimized Library of Kernels LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING -LIB_DEPENDS= liborc-0.4.so:devel/orc -BUILD_DEPENDS= ${PYTHON_SITELIBDIR}/mako/__init__.py:textproc/py-mako@${PY_FLAVOR} +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mako>=0.4.2:textproc/py-mako@${PY_FLAVOR} +LIB_DEPENDS= liborc-0.4.so:devel/orc \ + libboost_filesystem.so:devel/boost-libs -USES= cmake compiler:c++11-lang python:3.5+ +USES= cmake compiler:c++17-lang python:3.6+ tar:xz +USE_LDCONFIG= yes -USE_GITHUB= yes -GH_ACCOUNT= gnuradio +TEST_TARGET= test -USE_LDCONFIG= yes +.include + +.if ${ARCH} != amd64 +CMAKE_OFF= VOLK_CPU_FEATURES +.endif + +.if ${ARCH} == amd64 +post-install: + ${RM} ${STAGEDIR}${PREFIX}/bin/list_cpu_features + ${RM} -r ${STAGEDIR}${PREFIX}/include/cpu_features + ${RM} -r ${STAGEDIR}${PREFIX}/lib/cmake/CpuFeatures + ${RM} ${STAGEDIR}${PREFIX}/lib/libcpu_features.a +.endif .include diff --git a/devel/volk/distinfo b/devel/volk/distinfo index 14a6a5bc1cf5..2be0f51a01b3 100644 --- a/devel/volk/distinfo +++ b/devel/volk/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1585921652 -SHA256 (gnuradio-volk-v2.2.1_GH0.tar.gz) = 283d088f93774a55cb8be058b3d3b4a06d8bd44d6bc0016416f5a7818dd05db4 -SIZE (gnuradio-volk-v2.2.1_GH0.tar.gz) = 330676 +TIMESTAMP = 1623436325 +SHA256 (volk-2.5.0.tar.xz) = ddc84d2396e9d3899ff0411a0659f64ba19d75b2210cce83bc2eaa7767429252 +SIZE (volk-2.5.0.tar.xz) = 322280 diff --git a/devel/volk/files/patch-cpu__features_src_utils_list__cpu__features.c b/devel/volk/files/patch-cpu__features_src_utils_list__cpu__features.c new file mode 100644 index 000000000000..f51490267665 --- /dev/null +++ b/devel/volk/files/patch-cpu__features_src_utils_list__cpu__features.c @@ -0,0 +1,10 @@ +--- cpu_features/src/utils/list_cpu_features.c.orig 2021-06-11 19:08:10 UTC ++++ cpu_features/src/utils/list_cpu_features.c +@@ -340,6 +340,7 @@ static Node* GetCacheTypeString(CacheType cache_type) + case CPU_FEATURE_CACHE_PREFETCH: + return CreateConstantString("prefetch"); + } ++ return 0; + } + + static void AddCacheInfo(Node* root, const CacheInfo* cache_info) { diff --git a/devel/volk/files/patch-cpu_features-PR158 b/devel/volk/files/patch-cpu_features-PR158 new file mode 100644 index 000000000000..bd9f9076c92c --- /dev/null +++ b/devel/volk/files/patch-cpu_features-PR158 @@ -0,0 +1,107 @@ +From 5092e7584076acc7f8efc9e86b97f8df6468d440 Mon Sep 17 00:00:00 2001 +From: Mairi Dulaney +Date: Tue, 8 Jun 2021 22:27:07 -0700 +Subject: [PATCH 1/2] Add support for freebsd on x86 systems + +Signed-off-by: Mairi Dulaney +--- + include/cpu_features_macros.h | 4 ++++ + src/cpuinfo_aarch64.c | 5 +++++ + src/cpuinfo_x86.c | 9 +++++++++ + 3 files changed, 18 insertions(+) + +diff --git a/include/cpu_features_macros.h b/include/cpu_features_macros.h +index 4b231a1..59649b2 100644 +--- cpu_features/include/cpu_features_macros.h ++++ cpu_features/include/cpu_features_macros.h +@@ -83,6 +83,10 @@ + #define CPU_FEATURES_OS_DARWIN + #endif + ++#if (defined(__freebsd__) || defined(__FreeBSD__)) ++#define CPU_FEATURES_OS_FREEBSD ++#endif ++ + //////////////////////////////////////////////////////////////////////////////// + // Compilers + //////////////////////////////////////////////////////////////////////////////// +diff --git a/src/cpuinfo_aarch64.c b/src/cpuinfo_aarch64.c +index 62d6905..d09d173 100644 +--- cpu_features/src/cpuinfo_aarch64.c ++++ cpu_features/src/cpuinfo_aarch64.c +@@ -80,6 +80,11 @@ + #define DEFINE_TABLE_FEATURE_TYPE Aarch64Features + #include "define_tables.h" + ++#if defined(CPU_FEATURES_OS_FREEBSD) ++#error "FreeBSD not yet supported on this arch" ++#endif // CPU_FEATURES_OS ++ ++ + static bool HandleAarch64Line(const LineResult result, + Aarch64Info* const info) { + StringView line = result.line; +diff --git a/src/cpuinfo_x86.c b/src/cpuinfo_x86.c +index 1475158..7620960 100644 +--- cpu_features/src/cpuinfo_x86.c ++++ cpu_features/src/cpuinfo_x86.c +@@ -107,6 +107,8 @@ + #error "Darwin needs support for sysctlbyname" + #endif + #include ++#elif defined(CPU_FEATURES_OS_FREEBSD) ++#include + #else + #error "Unsupported OS" + #endif // CPU_FEATURES_OS +@@ -1244,6 +1246,13 @@ static void DetectSseViaOs(X86Features* features) { + features->ssse3 = GetDarwinSysCtlByName("hw.optional.supplementalsse3"); + features->sse4_1 = GetDarwinSysCtlByName("hw.optional.sse4_1"); + features->sse4_2 = GetDarwinSysCtlByName("hw.optional.sse4_2"); ++#elif defined(CPU_FEATURES_OS_FREEBSD) ++ features->sse = sysctlbyname("hw.instruction_sse", NULL, NULL, NULL, 1); ++ features->sse2 = sysctlbyname("hw.instruction_sse2", NULL, NULL, NULL, 1); ++ features->sse3 = sysctlbyname("hw.instruction_sse3", NULL, NULL, NULL, 1); ++ features->ssse3 = sysctlbyname("hw.instruction_supplementalsse3", NULL, NULL, NULL, 1); ++ features->sse4_1 = sysctlbyname("hw.instruction_sse4_1", NULL, NULL, NULL, 1); ++ features->sse4_2 = sysctlbyname("hw.instruction_sse4_2", NULL, NULL, NULL, 1); + #elif defined(CPU_FEATURES_OS_LINUX_OR_ANDROID) + // Handling Linux platform through /proc/cpuinfo. + const int fd = CpuFeatures_OpenFile("/proc/cpuinfo"); + +From 157c1f454b0223de95961a20d107f1b3a4fe7de8 Mon Sep 17 00:00:00 2001 +From: Mairi Dulaney +Date: Tue, 8 Jun 2021 22:34:29 -0700 +Subject: [PATCH 2/2] Update readme + +Signed-off-by: Mairi Dulaney +--- + README.md | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/README.md b/README.md +index f45dfe5..8dfb469 100644 +--- cpu_features/README.md ++++ cpu_features/README.md +@@ -141,13 +141,14 @@ flags : aes,avx,cx16,smx,sse4_1,sse4_2,ssse3 + + ## What's supported + +-| | x86³ | ARM | AArch64 | MIPS⁴ | POWER | +-|---------|:----:|:-------:|:-------:|:------:|:-------:| +-| Android | yes² | yes¹ | yes¹ | yes¹ | N/A | +-| iOS | N/A | not yet | not yet | N/A | N/A | +-| Linux | yes² | yes¹ | yes¹ | yes¹ | yes¹ | +-| MacOs | yes² | N/A | not yet | N/A | no | +-| Windows | yes² | not yet | not yet | N/A | N/A | ++| | x86³ | ARM | AArch64 | MIPS⁴ | POWER | ++|---------|:----:|:-------:|:-------:|:-------:|:-------:| ++| Android | yes² | yes¹ | yes¹ | yes¹ | N/A | ++| iOS | N/A | not yet | not yet | N/A | N/A | ++| Linux | yes² | yes¹ | yes¹ | yes¹ | yes¹ | ++| MacOs | yes² | N/A | not yet | N/A | no | ++| Windows | yes² | not yet | not yet | N/A | N/A | ++| FreeBSD | yes² | not yet | not yet | not yet | not yet | + + 1. **Features revealed from Linux.** We gather data from several sources + depending on availability: diff --git a/devel/volk/pkg-plist b/devel/volk/pkg-plist index e7431b64835b..a826b23db52c 100644 --- a/devel/volk/pkg-plist +++ b/devel/volk/pkg-plist @@ -38,12 +38,14 @@ include/volk/volk_32f_binary_slicer_8i.h include/volk/volk_32f_convert_64f.h include/volk/volk_32f_cos_32f.h include/volk/volk_32f_expfast_32f.h +include/volk/volk_32f_exp_32f.h include/volk/volk_32f_index_max_16u.h include/volk/volk_32f_index_max_32u.h include/volk/volk_32f_invsqrt_32f.h include/volk/volk_32f_log2_32f.h include/volk/volk_32f_null_32f.h include/volk/volk_32f_s32f_32f_fm_detect_32f.h +include/volk/volk_32f_s32f_add_32f.h include/volk/volk_32f_s32f_calc_spectral_noise_floor_32f.h include/volk/volk_32f_s32f_convert_16i.h include/volk/volk_32f_s32f_convert_32i.h @@ -75,6 +77,7 @@ include/volk/volk_32f_x3_sum_of_poly_32f.h include/volk/volk_32fc_32f_add_32fc.h include/volk/volk_32fc_32f_dot_prod_32fc.h include/volk/volk_32fc_32f_multiply_32fc.h +include/volk/volk_32fc_accumulator_s32fc.h include/volk/volk_32fc_conjugate_32fc.h include/volk/volk_32fc_convert_16ic.h include/volk/volk_32fc_deinterleave_32f_x2.h @@ -90,6 +93,7 @@ include/volk/volk_32fc_s32f_atan2_32f.h include/volk/volk_32fc_s32f_deinterleave_real_16i.h include/volk/volk_32fc_s32f_magnitude_16i.h include/volk/volk_32fc_s32f_power_32fc.h +include/volk/volk_32fc_s32f_power_spectral_densitypuppet_32f.h include/volk/volk_32fc_s32f_power_spectrum_32f.h include/volk/volk_32fc_s32f_x2_power_spectral_density_32f.h include/volk/volk_32fc_s32fc_multiply_32fc.h @@ -154,7 +158,8 @@ lib/cmake/volk/VolkConfigVersion.cmake lib/cmake/volk/VolkTargets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/volk/VolkTargets.cmake lib/libvolk.so -lib/libvolk.so.2.2.1 +lib/libvolk.so.2.5 +lib/libvolk.so.2.5.0 %%PYTHON_SITELIBDIR%%/volk_modtool/__init__.py %%PYTHON_SITELIBDIR%%/volk_modtool/__init__.pyc %%PYTHON_SITELIBDIR%%/volk_modtool/__init__.pyo