Index: head/multimedia/dav1d/Makefile =================================================================== --- head/multimedia/dav1d/Makefile (revision 487814) +++ head/multimedia/dav1d/Makefile (revision 487815) @@ -1,42 +1,46 @@ # $FreeBSD$ PORTNAME= dav1d DISTVERSION= 0.1.0 CATEGORIES= multimedia +PATCH_SITES= ${GL_SITE}/jbeich/${GL_PROJECT}/commit/ +PATCHFILES+= d3a03bd9939d.patch:-p1 +PATCHFILES+= 7f01c6166519.patch:-p1 + MAINTAINER= jbeich@FreeBSD.org COMMENT= Small and fast AV1 decoder LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= ${BUILD_DEPENDS_${ARCH}} BUILD_DEPENDS_aarch64= as:devel/binutils BUILD_DEPENDS_amd64= nasm:devel/nasm BUILD_DEPENDS_armv6= ${LOCALBASE}/bin/as:devel/binutils BUILD_DEPENDS_armv7= ${LOCALBASE}/bin/as:devel/binutils BUILD_DEPENDS_i386= nasm:devel/nasm USES= compiler:c11 meson USE_GITLAB= yes USE_LDCONFIG= yes GL_SITE= https://code.videolan.org GL_ACCOUNT= videolan GL_COMMIT= a6b903fb6d78f1515b2c50ba17ae50ead8cf5b72 CONFIGURE_ENV= UNAME_m=${ARCH} # XXX cpu_family() CFLAGS_aarch64= -no-integrated-as CFLAGS_armv6= -no-integrated-as -B${LOCALBASE}/bin CFLAGS_armv7= -no-integrated-as -B${LOCALBASE}/bin OPTIONS_DEFINE= TEST TEST_GL_TUPLE= videolan:dav1d-test-data:0028f7f3d9cdcd0e95643e16d49d5a691807cb77:testdata/tests/dav1d-test-data TEST_MESON_TRUE=build_tests testdata_tests .if make(makesum) # for optional distfiles .MAKEFLAGS: WITH="${OPTIONS_DEFINE}" .endif pre-install-TEST-on: do-test .include Index: head/multimedia/dav1d/distinfo =================================================================== --- head/multimedia/dav1d/distinfo (revision 487814) +++ head/multimedia/dav1d/distinfo (revision 487815) @@ -1,5 +1,9 @@ TIMESTAMP = 1544537696 SHA256 (videolan-dav1d-a6b903fb6d78f1515b2c50ba17ae50ead8cf5b72_GL0.tar.gz) = 28894914313dce4b8ffa5752502c486d11594f2b0ebd64c9dc8ee4ee28cb5e9c SIZE (videolan-dav1d-a6b903fb6d78f1515b2c50ba17ae50ead8cf5b72_GL0.tar.gz) = 443816 SHA256 (videolan-dav1d-test-data-0028f7f3d9cdcd0e95643e16d49d5a691807cb77_GL0.tar.gz) = f7172cb7d4f57e54d0caad8ab60fd43235983a2673a5e955c62fc3565a711eb9 SIZE (videolan-dav1d-test-data-0028f7f3d9cdcd0e95643e16d49d5a691807cb77_GL0.tar.gz) = 31033900 +SHA256 (d3a03bd9939d.patch) = 38b32e9e7c44eccba0ae328afc79ac9c41e15b06a977da9a0606f5c16d6f0bc2 +SIZE (d3a03bd9939d.patch) = 950 +SHA256 (7f01c6166519.patch) = 6e7407f6db3a423b6c0f801c6607b0609daa948fcd5252f9ba73e7ebc42ae9ff +SIZE (7f01c6166519.patch) = 1895 Index: head/multimedia/dav1d/files/patch-neon =================================================================== --- head/multimedia/dav1d/files/patch-neon (revision 487814) +++ head/multimedia/dav1d/files/patch-neon (nonexistent) @@ -1,75 +0,0 @@ -- Assume NEON on FreeBSD armv7 -- Implement NEON runtime detection on FreeBSD armv6 - ---- meson.build.orig 2018-12-11 14:14:56 UTC -+++ meson.build -@@ -147,6 +147,9 @@ if (host_machine.cpu_family() == 'aarch64' or - if cc.has_function('getauxval', prefix : '#include ', args : test_args) - cdata.set('HAVE_GETAUXVAL', 1) - endif -+ if cc.has_function('elf_aux_info', prefix : '#include ', args : test_args) -+ cdata.set('HAVE_ELF_AUX_INFO', 1) -+ endif - endif - - # Compiler flag tests ---- src/arm/cpu.c.orig 2018-12-11 14:14:56 UTC -+++ src/arm/cpu.c -@@ -29,7 +29,7 @@ - - #include "src/arm/cpu.h" - --#if defined(HAVE_GETAUXVAL) && ARCH_ARM -+#if (defined(HAVE_GETAUXVAL) || defined(HAVE_ELF_AUX_INFO)) && ARCH_ARM - #include - - #ifndef HWCAP_ARM_NEON -@@ -68,12 +68,48 @@ static unsigned parse_proc_cpuinfo(const char *flag) { - } - #endif - -+#if defined(__FreeBSD__) && __FreeBSD__ < 12 -+#include -+#include -+#include -+#include -+#include -+ -+#define HAVE_GETAUXVAL -+#define NEON_HWCAP HWCAP_NEON -+static unsigned long getauxval(unsigned long type) { -+ Elf_Auxinfo auxv[AT_COUNT]; -+ size_t len = sizeof(auxv); -+ int mib[] = { -+ CTL_KERN, -+ KERN_PROC, -+ KERN_PROC_AUXV, -+ getpid(), -+ }; -+ -+ if (sysctl(mib, nitems(mib), auxv, &len, NULL, 0) != -1) { -+ for (size_t i = 0; i < nitems(auxv); i++) -+ if ((unsigned long)auxv[i].a_type == type) -+ return auxv[i].a_un.a_val; -+ -+ errno = ENOENT; -+ } -+ return 0; -+} -+#endif -+ - unsigned dav1d_get_cpu_flags_arm(void) { - unsigned flags = 0; - #if ARCH_AARCH64 - flags |= DAV1D_ARM_CPU_FLAG_NEON; -+#elif defined(__ARM_NEON) -+ flags |= DAV1D_ARM_CPU_FLAG_NEON; - #elif defined(HAVE_GETAUXVAL) && ARCH_ARM - unsigned long hw_cap = getauxval(AT_HWCAP); -+ flags |= (hw_cap & NEON_HWCAP) ? DAV1D_ARM_CPU_FLAG_NEON : 0; -+#elif defined(HAVE_ELF_AUX_INFO) && ARCH_ARM -+ unsigned long hw_cap; -+ elf_aux_info(AT_HWCAP, &hw_cap, sizeof(hw_cap)); - flags |= (hw_cap & NEON_HWCAP) ? DAV1D_ARM_CPU_FLAG_NEON : 0; - #elif defined(__ANDROID__) - flags |= parse_proc_cpuinfo("neon") ? DAV1D_ARM_CPU_FLAG_NEON : 0; Property changes on: head/multimedia/dav1d/files/patch-neon ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/multimedia/dav1d/files/patch-neon-freebsd11 =================================================================== --- head/multimedia/dav1d/files/patch-neon-freebsd11 (nonexistent) +++ head/multimedia/dav1d/files/patch-neon-freebsd11 (revision 487815) @@ -0,0 +1,42 @@ +- Implement NEON runtime detection on FreeBSD 11.* armv6 + +--- src/arm/cpu.c.orig 2018-12-11 14:14:56 UTC ++++ src/arm/cpu.c +@@ -68,7 +68,37 @@ static unsigned parse_proc_cpuinfo(const char *flag) { + } + #endif + ++#if defined(__FreeBSD__) && __FreeBSD__ < 12 ++#include ++#include ++#include ++#include ++#include ++ ++#define HAVE_GETAUXVAL ++#define NEON_HWCAP HWCAP_NEON ++static unsigned long getauxval(unsigned long type) { ++ Elf_Auxinfo auxv[AT_COUNT]; ++ size_t len = sizeof(auxv); ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_AUXV, ++ getpid(), ++ }; ++ ++ if (sysctl(mib, nitems(mib), auxv, &len, NULL, 0) != -1) { ++ for (size_t i = 0; i < nitems(auxv); i++) ++ if ((unsigned long)auxv[i].a_type == type) ++ return auxv[i].a_un.a_val; ++ ++ errno = ENOENT; ++ } ++ return 0; ++} ++#endif ++ + unsigned dav1d_get_cpu_flags_arm(void) { + unsigned flags = 0; + #if ARCH_AARCH64 + flags |= DAV1D_ARM_CPU_FLAG_NEON; Property changes on: head/multimedia/dav1d/files/patch-neon-freebsd11 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property