Index: head/multimedia/libvpx/Makefile =================================================================== --- head/multimedia/libvpx/Makefile (revision 486564) +++ head/multimedia/libvpx/Makefile (revision 486565) @@ -1,78 +1,77 @@ # Created by: Ashish SHUKLA # $FreeBSD$ PORTNAME= libvpx DISTVERSIONPREFIX= v DISTVERSION= 1.7.0 PORTREVISION= 2 CATEGORIES= multimedia MAINTAINER= jbeich@FreeBSD.org COMMENT= VP8/VP9 Codec SDK LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= nasm:devel/nasm USE_GITHUB= yes GH_ACCOUNT= webmproject USES= compiler:c++11-lib cpe gmake perl5 shebangfix CPE_VENDOR= john_koleszar HAS_CONFIGURE= yes USE_PERL5= build USE_LDCONFIG= yes SHEBANG_FILES= build/make/ads2gas.pl CONFIGURE_ENV= ASFLAGS="${ASFLAGS}" CONFIGURE_ARGS= --prefix=${PREFIX} \ --disable-install-docs \ --disable-install-srcs \ --enable-pic \ --enable-vp8 \ --enable-vp9 MAKE_ARGS+= verbose=yes ASFLAGS+= ${ASFLAGS_${MACHINE}} ASFLAGS_arm= -meabi=5 ALL_TARGET= # empty OPTIONS_DEFINE= DEBUG MULTIRES POSTPROC RTCPU SHARED SIZE_LIMIT TEST THREADS OPTIONS_DEFAULT=MULTIRES POSTPROC RTCPU SHARED SIZE_LIMIT THREADS -OPTIONS_EXCLUDE_aarch64=RTCPU OPTIONS_EXCLUDE_powerpcspe=RTCPU OPTIONS_SUB= yes DEBUG_CONFIGURE_ON= --enable-debug MULTIRES_DESC= Enable multi-resolution encoding MULTIRES_CONFIGURE_ON= --enable-multi-res-encoding POSTPROC_DESC= Enable postprocessing POSTPROC_CONFIGURE_ON= --enable-postproc --enable-vp9-postproc \ --enable-vp9-temporal-denoising RTCPU_DESC= Detect CPU capabilities at runtime RTCPU_CONFIGURE_ON= --enable-runtime-cpu-detect SHARED_DESC= Enable shared-library support SHARED_CONFIGURE_ON= --enable-shared SIZE_LIMIT_DESC= Maximum size allowed by decoder: ${SIZE_LIMIT} SIZE_LIMIT_CONFIGURE_ON=--size-limit=${SIZE_LIMIT} SIZE_LIMIT?= 16384x16384 # Chromium; Firefox has 4000x3000 TEST_CONFIGURE_OFF= --disable-unit-tests THREADS_CONFIGURE_OFF= --disable-multithread post-patch: @${REINPLACE_CMD} -E '/gcctarget|link_with_cc/s/gcc[[:>:]]/$${CC}/' \ ${WRKSRC}/build/make/configure.sh post-install: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/vpx* post-install-SHARED-on: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libvpx.so.*.*.* .include Index: head/multimedia/libvpx/files/patch-vpx__ports_arm__cpudetect.c =================================================================== --- head/multimedia/libvpx/files/patch-vpx__ports_arm__cpudetect.c (revision 486564) +++ head/multimedia/libvpx/files/patch-vpx__ports_arm__cpudetect.c (revision 486565) @@ -1,61 +1,70 @@ --- vpx_ports/arm_cpudetect.c.orig 2017-01-12 20:27:27 UTC +++ vpx_ports/arm_cpudetect.c +@@ -38,7 +38,7 @@ static int arm_cpu_env_mask(void) { + return env && *env ? (int)strtol(env, NULL, 0) : ~0; + } + +-#if !CONFIG_RUNTIME_CPU_DETECT ++#if !CONFIG_RUNTIME_CPU_DETECT || defined(__ARM_NEON) + + int arm_cpu_caps(void) { + /* This function should actually be a no-op. There is no way to adjust any of @@ -147,7 +147,57 @@ int arm_cpu_caps(void) { } return flags & mask; } -#else /* end __linux__ */ +#elif defined(__FreeBSD__) + +#if __FreeBSD__ < 12 +#include +#include +#include +#include +#include + +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; +} +#else +#include +#endif + +int arm_cpu_caps(void) { + int flags; + int mask; + u_long hwcaps = 0; + if (!arm_cpu_env_flags(&flags)) { + return flags; + } + mask = arm_cpu_env_mask(); +#if __FreeBSD__ < 12 + hwcaps = getauxval(AT_HWCAP); +#else + elf_aux_info(AT_HWCAP, &hwcaps, sizeof(hwcaps)); +#endif +#if HAVE_NEON || HAVE_NEON_ASM + if (hwcaps & HWCAP_NEON) flags |= HAS_NEON; +#endif + return flags & mask; +} +#else /* end __FreeBSD__ */ #error \ "--enable-runtime-cpu-detect selected, but no CPU detection method " \ "available for your platform. Reconfigure with --disable-runtime-cpu-detect."