#!/bin/sh # This is a shell archive echo x computelibrary mkdir -p computelibrary > /dev/null 2>&1 echo x computelibrary/Makefile sed 's/^X//' > computelibrary/Makefile << 'SHAR_END' XPORTNAME= ComputeLibrary XDISTVERSIONPREFIX=v XDISTVERSION= 23.02 XCATEGORIES= devel X XMAINTAINER= freebsd@sysctl.cz XCOMMENT= Arm compute library XWWW= https://github.com/ARM-software/ComputeLibrary X XLICENSE= MIT XLICENSE_FILE= ${WRKSRC}/LICENSE X XUSES= scons XUSE_GCC= yes XUSE_GITHUB= yes XGH_ACCOUNT= ARM-software XGH_PROJECT= ComputeLibrary X X.include X XSCONS_ARGS_amd64= neon=0 opencl=1 examples=1 arch=x86_64 XSCONS_ARGS_aarch64= neon=1 opencl=0 examples=0 arch=arm64-v8a XSCONS_ARGS_armv7= neon=1 opencl=0 examples=0 arch=armv7a XSCONS_ARGS+= os=freebsd Werror=0 embed_kernels=0 build=native ${SCONS_ARGS_${ARCH}} XMAKE_ARGS= ${SCONS_ARGS} X Xdo-install: X ${INSTALL_LIB} ${WRKSRC}/build/*.so ${STAGEDIR}${PREFIX}/lib/ X ${INSTALL_LIB} ${WRKSRC}/build/*.a ${STAGEDIR}${PREFIX}/lib/ X ${CP} -R ${WRKSRC}/include/* ${STAGEDIR}${PREFIX}/include/ X X.include SHAR_END echo x computelibrary/distinfo sed 's/^X//' > computelibrary/distinfo << 'SHAR_END' XTIMESTAMP = 1677964765 XSHA256 (ARM-software-ComputeLibrary-v23.02_GH0.tar.gz) = 86baaee540e8b5672a425d3f62aa51f240b1a0f63601163d9a5a8f72f6df8b4a XSIZE (ARM-software-ComputeLibrary-v23.02_GH0.tar.gz) = 13592767 SHAR_END echo x computelibrary/files mkdir -p computelibrary/files > /dev/null 2>&1 echo x computelibrary/pkg-descr sed 's/^X//' > computelibrary/pkg-descr << 'SHAR_END' XThe Compute Library is a set of computer vision and Xmachine learning functions optimised for both Arm XCPUs and GPUs using SIMD technologies. SHAR_END echo x computelibrary/pkg-plist sed 's/^X//' > computelibrary/pkg-plist << 'SHAR_END' Xinclude/CL/cl.h Xinclude/CL/cl_d3d10.h Xinclude/CL/cl_d3d11.h Xinclude/CL/cl_dx9_media_sharing.h Xinclude/CL/cl_dx9_media_sharing_intel.h Xinclude/CL/cl_egl.h Xinclude/CL/cl_ext.h Xinclude/CL/cl_ext_intel.h Xinclude/CL/cl_gl.h Xinclude/CL/cl_gl_ext.h Xinclude/CL/cl_half.h Xinclude/CL/cl_icd.h Xinclude/CL/cl_platform.h Xinclude/CL/cl_va_api_media_sharing_intel.h Xinclude/CL/cl_version.h Xinclude/CL/opencl.h Xinclude/CL/opencl.hpp Xinclude/half/half.hpp Xinclude/libnpy/npy.hpp Xinclude/stb/stb_image.h Xlib/libarm_compute-static.a Xlib/libarm_compute.so Xlib/libarm_compute_core-static.a Xlib/libarm_compute_core.so Xlib/libarm_compute_graph-static.a Xlib/libarm_compute_graph.so SHAR_END echo x computelibrary/files/patch-SConscript sed 's/^X//' > computelibrary/files/patch-SConscript << 'SHAR_END' X--- SConscript.orig 2023-03-04 21:29:28 UTC X+++ SConscript X@@ -489,7 +489,7 @@ undefined_flag = '-Wl,-undefined,error' if 'macos' in X arm_compute_env.Append(LINKFLAGS=[undefined_flag]) X arm_compute_env.Append(CPPPATH =[Dir("./src/core/").path] ) X X-if env['os'] != 'openbsd': X+if env['os'] != 'openbsd' or 'freebsd': X if env['os'] == 'windows': X arm_compute_env.Append(LIBS = []) X else: SHAR_END echo x computelibrary/files/patch-SConstruct sed 's/^X//' > computelibrary/files/patch-SConstruct << 'SHAR_END' X--- SConstruct.orig 2023-02-16 15:41:23 UTC X+++ SConstruct X@@ -93,7 +93,7 @@ vars.AddVariables( X allowed_values=("armv7a", "armv7a-hf", "arm64-v8a", "arm64-v8.2-a", "arm64-v8.2-a-sve", "arm64-v8.2-a-sve2", "x86_32", "x86_64", X "armv8a", "armv8.2-a", "armv8.2-a-sve", "armv8.6-a", "armv8.6-a-sve", "armv8.6-a-sve2", "armv8.6-a-sve2-sme2", "armv8r64", "x86")), X EnumVariable("estate", "Execution State", "auto", allowed_values=("auto", "32", "64")), X- EnumVariable("os", "Target OS. With bare metal selected, only Arm® Neon™ (not OpenCL) can be used, static libraries get built and Neon™'s multi-threading support is disabled.", "linux", allowed_values=("linux", "android", "tizen", "macos", "bare_metal", "openbsd","windows")), X+ EnumVariable("os", "Target OS. With bare metal selected, only Arm® Neon™ (not OpenCL) can be used, static libraries get built and Neon™'s multi-threading support is disabled.", "linux", allowed_values=("linux", "android", "tizen", "macos", "bare_metal", "openbsd", "freebsd", "windows")), X EnumVariable("build", "Either build directly on your device (native) or cross compile from your desktop machine (cross-compile). In both cases make sure the compiler is available in your path.", "cross_compile", allowed_values=("native", "cross_compile", "embed_only")), X BoolVariable("examples", "Build example programs", True), X BoolVariable("gemm_tuner", "Build gemm_tuner programs", True), X@@ -231,11 +231,11 @@ env.Append(CPPDEFINES = ['_GLIBCXX_USE_NANOSLEEP']) X X cpp_tool = {'linux': 'g++', 'android' : 'clang++', X 'tizen': 'g++', 'macos':'clang++', X- 'bare_metal':'g++', 'openbsd':'g++','windows':'clang-cl'} X+ 'bare_metal':'g++', 'openbsd':'g++', 'freebsd':'g++', 'windows':'clang-cl'} X X c_tool = {'linux':'gcc', 'android': 'clang', 'tizen':'gcc', X 'macos':'clang','bare_metal':'gcc', X- 'openbsd':'gcc','windows':'clang-cl'} X+ 'openbsd':'gcc', 'freebsd':'gcc', 'windows':'clang-cl'} X X default_cpp_compiler = cpp_tool[env['os']] X default_c_compiler = c_tool[env['os']] X@@ -517,7 +517,7 @@ if env['opencl']: X if env["os"] not in ["windows","android", "bare_metal"] and (env['opencl'] or env['cppthreads']): X env.Append(LIBS = ['pthread']) X X-if env['os'] == 'openbsd': X+if env['os'] == 'openbsd' or 'frebsd': X env.Append(LIBS = ['c']) X env.Append(CXXFLAGS = ['-fPIC']) X SHAR_END echo x computelibrary/files/patch-src_common_cpuinfo_CpuInfo.cpp sed 's/^X//' > computelibrary/files/patch-src_common_cpuinfo_CpuInfo.cpp << 'SHAR_END' X--- src/common/cpuinfo/CpuInfo.cpp.orig 2023-02-16 15:41:23 UTC X+++ src/common/cpuinfo/CpuInfo.cpp X@@ -44,14 +44,14 @@ X #endif /* !defined(BARE_METAL) */ X X #if !defined(_WIN64) X-#if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) X+#if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && (defined(__arm__) || defined(__aarch64__)) X #include /* Get HWCAP bits from asm/hwcap.h */ X #include X #elif defined(__APPLE__) && defined(__aarch64__) X #include X #include X #endif /* defined(__APPLE__) && defined(__aarch64__)) */ X-#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ X+#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && (defined(__arm__) || defined(__aarch64__)) */ X X #define ARM_COMPUTE_CPU_FEATURE_HWCAP_CPUID (1 << 11) X #define ARM_COMPUTE_GET_FEATURE_REG(var, freg) __asm __volatile("MRS %0, " #freg \ X@@ -62,7 +62,7 @@ namespace cpuinfo X { X namespace X { X-#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) X+#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && (defined(__arm__) || defined(__aarch64__)) X /** Extract MIDR using CPUID information that are exposed to user-space X * X * @param[in] max_num_cpus Maximum number of possible CPUs X@@ -278,7 +278,7 @@ int get_hw_capability(const std::string &cap) X sysctlbyname(cap.c_str(), &result, &size, NULL, 0); X return result; X } X-#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ X+#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && (defined(__arm__) || defined(__aarch64__)) */ X X #if defined(BARE_METAL) && defined(__aarch64__) X uint64_t get_sve_feature_reg() X@@ -302,7 +302,7 @@ CpuInfo::CpuInfo(CpuIsaInfo isa, std::vector X X CpuInfo CpuInfo::build() X { X-#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) X+#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && (defined(__arm__) || defined(__aarch64__)) X const uint32_t hwcaps = getauxval(AT_HWCAP); X const uint32_t hwcaps2 = getauxval(AT_HWCAP2); X const uint32_t max_cpus = get_max_cpus(); X@@ -333,7 +333,7 @@ CpuInfo CpuInfo::build() X CpuInfo info(isa, cpus_model); X return info; X X-#elif(BARE_METAL) && defined(__aarch64__) /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ X+#elif(BARE_METAL) && defined(__aarch64__) /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && (defined(__arm__) || defined(__aarch64__)) */ X X // Assume single CPU in bare metal mode. Just read the ID register and feature bits directly. X uint64_t isar0 = 0, isar1 = 0, pfr0 = 0, pfr1 = 0, svefr0 = 0, midr = 0; X@@ -363,7 +363,7 @@ CpuInfo CpuInfo::build() X #else /* #elif defined(__aarch64__) && defined(__APPLE__) */ X CpuInfo info(CpuIsaInfo(), { CpuModel::GENERIC }); X return info; X-#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && (defined(__arm__) || defined(__aarch64__)) */ X+#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && (defined(__arm__) || defined(__aarch64__)) */ X } X X CpuModel CpuInfo::cpu_model(uint32_t cpuid) const X@@ -377,11 +377,11 @@ CpuModel CpuInfo::cpu_model(uint32_t cpuid) const X X CpuModel CpuInfo::cpu_model() const X { X-#if defined(_WIN64) || defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || (!defined(__arm__) && !defined(__aarch64__)) X+#if defined(_WIN64) || defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || (!defined(__arm__) && !defined(__aarch64__)) X return cpu_model(0); X-#else /* defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || (!defined(__arm__) && !defined(__aarch64__)) */ X+#else /* defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || (!defined(__arm__) && !defined(__aarch64__)) */ X return cpu_model(sched_getcpu()); X-#endif /* defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || (!defined(__arm__) && !defined(__aarch64__)) */ X+#endif /* defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || (!defined(__arm__) && !defined(__aarch64__)) */ X } X X uint32_t CpuInfo::num_cpus() const SHAR_END echo x computelibrary/files/patch-src_core_NEON_kernels_arm__conv_pooling_pooling__depthfirst.hpp sed 's/^X//' > computelibrary/files/patch-src_core_NEON_kernels_arm__conv_pooling_pooling__depthfirst.hpp << 'SHAR_END' X--- src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst.hpp.orig 2022-10-17 14:31:04 UTC X+++ src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst.hpp X@@ -27,9 +27,9 @@ X #include "depthfirst_driver.hpp" X #include "src/core/NEON/kernels/arm_conv/addressing.hpp" X #include "utils.hpp" X-#if !defined(_WIN64) && !defined(__OpenBSD__) X+#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) X #include X-#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */ X+#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */ X #include X X namespace arm_conv { SHAR_END echo x computelibrary/files/patch-src_core_NEON_kernels_arm__conv_pooling_pooling__depthfirst__generic.hpp sed 's/^X//' > computelibrary/files/patch-src_core_NEON_kernels_arm__conv_pooling_pooling__depthfirst__generic.hpp << 'SHAR_END' X--- src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst_generic.hpp.orig 2022-10-17 14:34:43 UTC X+++ src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst_generic.hpp X@@ -27,9 +27,9 @@ X #include "arm_compute/core/Error.h" X #include "depthfirst_driver.hpp" X #include "utils.hpp" X-#if !defined(_WIN64) && !defined(__OpenBSD__) X+#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) X #include X-#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */ X+#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(FreeBSD) */ X X namespace arm_conv { X namespace pooling { SHAR_END echo x computelibrary/files/patch-src_core_NEON_kernels_arm__gemm_gemm__hybrid__indirect.hpp sed 's/^X//' > computelibrary/files/patch-src_core_NEON_kernels_arm__gemm_gemm__hybrid__indirect.hpp << 'SHAR_END' X--- src/core/NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp.orig 2022-10-17 14:18:51 UTC X+++ src/core/NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp X@@ -23,9 +23,9 @@ X */ X #pragma once X X-#if !defined(_WIN64) && !defined(__OpenBSD__) X+#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) X #include X-#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */ X+#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */ X X #include X #include SHAR_END echo x computelibrary/files/patch-src_core_NEON_kernels_arm__gemm_interleave__indirect.cpp sed 's/^X//' > computelibrary/files/patch-src_core_NEON_kernels_arm__gemm_interleave__indirect.cpp << 'SHAR_END' X--- src/core/NEON/kernels/arm_gemm/interleave_indirect.cpp.orig 2022-10-17 14:40:08 UTC X+++ src/core/NEON/kernels/arm_gemm/interleave_indirect.cpp X@@ -28,9 +28,9 @@ X #include "interleave_indirect.hpp" X #include "bfloat.hpp" X X-#if !defined(_WIN64) && !defined(__OpenBSD__) X+#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) X #include X-#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */ X+#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */ X X #include X #include SHAR_END echo x computelibrary/files/patch-src_core_NEON_kernels_arm__gemm_transform.cpp sed 's/^X//' > computelibrary/files/patch-src_core_NEON_kernels_arm__gemm_transform.cpp << 'SHAR_END' X--- src/core/NEON/kernels/arm_gemm/transform.cpp.orig 2022-10-17 14:20:58 UTC X+++ src/core/NEON/kernels/arm_gemm/transform.cpp X@@ -25,9 +25,9 @@ X X #include "bfloat.hpp" X X-#if !defined(_WIN64) && !defined(__OpenBSD__) X+#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) X #include X-#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */ X+#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */ X X namespace arm_gemm { X SHAR_END echo x computelibrary/files/patch-src_runtime_CPP_CPPScheduler.cpp sed 's/^X//' > computelibrary/files/patch-src_runtime_CPP_CPPScheduler.cpp << 'SHAR_END' X--- src/runtime/CPP/CPPScheduler.cpp.orig 2022-08-18 12:49:09 UTC X+++ src/runtime/CPP/CPPScheduler.cpp X@@ -104,12 +104,12 @@ void set_thread_affinity(int core_id) X return; X } X X-#if !defined(_WIN64) && !defined(__APPLE__) && !defined(__OpenBSD__) X+#if !defined(_WIN64) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) X cpu_set_t set; X CPU_ZERO(&set); X CPU_SET(core_id, &set); X ARM_COMPUTE_EXIT_ON_MSG(sched_setaffinity(0, sizeof(set), &set), "Error setting thread affinity"); X-#endif /* !defined(__APPLE__) && !defined(__OpenBSD__) */ X+#endif /* !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */ X } X X /** There are currently 2 scheduling modes supported by CPPScheduler SHAR_END echo x computelibrary/files/patch-tests_framework_instruments_Instruments.h sed 's/^X//' > computelibrary/files/patch-tests_framework_instruments_Instruments.h << 'SHAR_END' X--- tests/framework/instruments/Instruments.h.orig 2022-08-18 12:49:09 UTC X+++ tests/framework/instruments/Instruments.h X@@ -24,12 +24,12 @@ X #ifndef ARM_COMPUTE_TEST_INSTRUMENTS X #define ARM_COMPUTE_TEST_INSTRUMENTS X X-#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) X+#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) X #include "MaliCounter.h" X #include "OpenCLMemoryUsage.h" X #include "OpenCLTimer.h" X #include "PMUCounter.h" X-#endif /* !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) */ X+#endif /* !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */ X #include "SchedulerTimer.h" X #include "WallClockTimer.h" X SHAR_END echo x computelibrary/files/patch-tests_framework_Framework.cpp sed 's/^X//' > computelibrary/files/patch-tests_framework_Framework.cpp << 'SHAR_END' X--- tests/framework/Framework.cpp.orig 2023-03-05 10:51:48 UTC X+++ tests/framework/Framework.cpp X@@ -26,6 +26,8 @@ X #include "arm_compute/runtime/Scheduler.h" X #include "tests/framework/ParametersLibrary.h" X #include "tests/framework/TestFilter.h" X+#include "tests/framework/instruments/OpenCLTimer.h" X+#include "tests/framework/instruments/OpenCLMemoryUsage.h" X X #ifdef ARM_COMPUTE_CL X #include "arm_compute/runtime/CL/CLRuntimeContext.h" SHAR_END exit