Download raw body.
UPDATE: libvpx - PowerPC
ping.
On 2025-03-01 10:24 p.m., Brad Smith wrote:
> ping.
>
> On 2025-02-14 3:08 a.m., Brad Smith wrote:
>> Here is a diff for libvpx to add PowerPC CPU feature detection for
>> PowerPC64 instead of the stub just to build.
>>
>> Needs testing on PowerPC64.
>>
>>
>> Index: Makefile
>> ===================================================================
>> RCS file: /cvs/ports/multimedia/libvpx/Makefile,v
>> retrieving revision 1.61
>> diff -u -p -u -p -r1.61 Makefile
>> --- Makefile 24 Nov 2024 08:38:14 -0000 1.61
>> +++ Makefile 14 Feb 2025 07:25:16 -0000
>> @@ -4,6 +4,7 @@ GH_ACCOUNT= webmproject
>> GH_PROJECT= libvpx
>> GH_TAGNAME= v1.15.0
>> EPOCH= 0
>> +REVISION= 0
>> CATEGORIES= multimedia
>> SHARED_LIBS= vpx 18.0
>> Index: patches/patch-vpx_ports_aarch32_cpudetect_c
>> ===================================================================
>> RCS file:
>> /cvs/ports/multimedia/libvpx/patches/patch-vpx_ports_aarch32_cpudetect_c,v
>> retrieving revision 1.3
>> diff -u -p -u -p -r1.3 patch-vpx_ports_aarch32_cpudetect_c
>> --- patches/patch-vpx_ports_aarch32_cpudetect_c 24 Nov 2024
>> 08:38:14 -0000 1.3
>> +++ patches/patch-vpx_ports_aarch32_cpudetect_c 14 Feb 2025
>> 07:25:16 -0000
>> @@ -1,4 +1,4 @@
>> -Allow ARM CPU runtime detection code to build on OpenBSD.
>> +Add ARM CPU feature detection support for OpenBSD.
>> Index: vpx_ports/aarch32_cpudetect.c
>> --- vpx_ports/aarch32_cpudetect.c.orig
>> Index: patches/patch-vpx_ports_ppc_cpudetect_c
>> ===================================================================
>> RCS file:
>> /cvs/ports/multimedia/libvpx/patches/patch-vpx_ports_ppc_cpudetect_c,v
>> retrieving revision 1.2
>> diff -u -p -u -p -r1.2 patch-vpx_ports_ppc_cpudetect_c
>> --- patches/patch-vpx_ports_ppc_cpudetect_c 11 Mar 2022 19:39:22
>> -0000 1.2
>> +++ patches/patch-vpx_ports_ppc_cpudetect_c 14 Feb 2025 07:25:16
>> -0000
>> @@ -1,31 +1,70 @@
>> -Allow PowerPC CPU runtime detection code to build on OpenBSD.
>> +Add PowerPC CPU feature detection support for OpenBSD.
>> Index: vpx_ports/ppc_cpudetect.c
>> --- vpx_ports/ppc_cpudetect.c.orig
>> +++ vpx_ports/ppc_cpudetect.c
>> -@@ -8,16 +8,19 @@
>> +@@ -8,11 +8,8 @@
>> * be found in the AUTHORS file in the root of the source tree.
>> */
>> -+#if defined(__linux__)
>> - #include <fcntl.h>
>> +-#include <fcntl.h>
>> #include <unistd.h>
>> #include <stdint.h>
>> - #include <asm/cputable.h>
>> - #include <linux/auxvec.h>
>> -+#endif
>> +-#include <asm/cputable.h>
>> +-#include <linux/auxvec.h>
>> #include "./vpx_config.h"
>> #include "vpx_ports/ppc.h"
>> +@@ -35,6 +32,12 @@ static int cpu_env_mask(void) {
>> + return env && *env ? (int)strtol(env, NULL, 0) : ~0;
>> + }
>> - #if CONFIG_RUNTIME_CPU_DETECT
>> +#if defined(__linux__)
>> - static int cpu_env_flags(int *flags) {
>> - char *env;
>> - env = getenv("VPX_SIMD_CAPS");
>> -@@ -77,4 +80,5 @@ out_close:
>> - // If there is no RTCD the function pointers are not used and can
>> not be
>> - // changed.
>> - int ppc_simd_caps(void) { return 0; }
>> ++
>> ++#include <fcntl.h>
>> ++#include <asm/cputable.h>
>> ++#include <linux/auxvec.h>
>> ++
>> + int ppc_simd_caps(void) {
>> + int flags;
>> + int mask;
>> +@@ -71,6 +74,39 @@ int ppc_simd_caps(void) {
>> + }
>> + out_close:
>> + close(fd);
>> ++ return flags & mask;
>> ++}
>> ++
>> ++#elif defined(__OpenBSD__)
>> ++
>> ++#include <sys/auxv.h>
>> ++
>> ++// Define hwcap values ourselves: building with an old auxv header
>> where these
>> ++// hwcap values are not defined should not prevent features from
>> being enabled.
>> ++#define VPX_PPC_HWCAP_VSX (1 << 7)
>> ++
>> ++int ppc_simd_caps(void) {
>> ++ int flags;
>> ++ int mask;
>> ++
>> ++ // If VPX_SIMD_CAPS is set then allow only those capabilities.
>> ++ if (!cpu_env_flags(&flags)) {
>> ++ return flags;
>> ++ }
>> ++
>> ++ mask = cpu_env_mask();
>> ++
>> ++#ifdef __OpenBSD__
>> ++ unsigned long hwcap = 0;
>> ++ elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
>> ++#else
>> ++ unsigned long hwcap = getauxval(AT_HWCAP);
>> +#endif
>> - #endif // CONFIG_RUNTIME_CPU_DETECT
>> ++#if HAVE_VSX
>> ++ if (hwcap & VPX_PPC_HWCAP_VSX) {
>> ++ flags |= HAS_VSX;
>> ++ }
>> ++#endif // HAVE_VSX
>> + return flags & mask;
>> + }
>> + #else
UPDATE: libvpx - PowerPC