> Date: Wed, 28 Feb 2024 16:17:54 +0000 > From: Stuart Henderson <s...@spacehopper.org> > > +cc kettenis for the IBT patch
Looks good to me. > On 2024/02/28 16:15, Stuart Henderson wrote: > > On 2024/02/23 17:19, Brad Smith wrote: > > > Here is an update to aom 3.8.1. > > > > > > https://aomedia.googlesource.com/aom/+/refs/heads/main/CHANGELOG > > > > Here's a tweaked version adding yasm-compatible endbr64 magic to > > x86inc.asm. Similar to what I added to audio/deadbeef but the > > definitions in aom_config.asm use a different label (and setting to > > 0 or 1 rather than checking for presence/absence). > > > > Still builds on i386. > > > > With this I can encode from one of the xiph.org test YUV4MPEG files > > at https://media.xiph.org/video/derf/ on 11th gen intel without crashing, > > which I couldn't do before. > > > > $ aomenc -o test.webm -w 352 -h 288 --limit=100 --cpu-used=4 akiyo_cif.y4m > > > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/multimedia/aom/Makefile,v > retrieving revision 1.20 > diff -u -p -r1.20 Makefile > --- Makefile 29 May 2023 17:52:01 -0000 1.20 > +++ Makefile 28 Feb 2024 16:06:36 -0000 > @@ -2,10 +2,10 @@ COMMENT= Alliance for Open Media AV1 vid > > GH_ACCOUNT= jbeich > GH_PROJECT= aom > -GH_TAGNAME= v3.6.1 > +GH_TAGNAME= v3.8.1 > CATEGORIES= multimedia > > -SHARED_LIBS= aom 4.0 > +SHARED_LIBS= aom 4.1 > > HOMEPAGE= https://aomedia.org/ > > Index: distinfo > =================================================================== > RCS file: /cvs/ports/multimedia/aom/distinfo,v > retrieving revision 1.17 > diff -u -p -r1.17 distinfo > --- distinfo 29 May 2023 17:52:01 -0000 1.17 > +++ distinfo 28 Feb 2024 16:06:36 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (aom-3.6.1.tar.gz) = Z5xBtBpQucWo+qG6kZ4MI5quf+hXUl4iP/IMVpl/EZ8= > -SIZE (aom-3.6.1.tar.gz) = 5269397 > +SHA256 (aom-3.8.1.tar.gz) = Yp0PvVhlQWfSjz78LN/w5wjWgoCqWzD4F0Tn4YGo2FE= > +SIZE (aom-3.8.1.tar.gz) = 5461300 > Index: patches/patch-CMakeLists_txt > =================================================================== > RCS file: /cvs/ports/multimedia/aom/patches/patch-CMakeLists_txt,v > retrieving revision 1.5 > diff -u -p -r1.5 patch-CMakeLists_txt > --- patches/patch-CMakeLists_txt 9 Apr 2023 06:17:17 -0000 1.5 > +++ patches/patch-CMakeLists_txt 28 Feb 2024 16:06:36 -0000 > @@ -1,12 +1,13 @@ > Index: CMakeLists.txt > --- CMakeLists.txt.orig > +++ CMakeLists.txt > -@@ -824,7 +824,7 @@ if(ENABLE_EXAMPLES AND "${CMAKE_GENERATOR}" MATCHES "M > - endif() > - > - if(BUILD_SHARED_LIBS) > -- if(NOT WIN32 AND NOT APPLE) > -+ if(NOT WIN32 AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD") > +@@ -828,7 +828,8 @@ if(BUILD_SHARED_LIBS) > + # https://clang.llvm.org/docs/AddressSanitizer.html#usage. > + if(NOT WIN32 > + AND NOT APPLE > +- AND NOT (CMAKE_C_COMPILER_ID MATCHES "Clang" AND SANITIZE)) > ++ AND NOT (CMAKE_C_COMPILER_ID MATCHES "Clang" AND SANITIZE) > ++ AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD") > # The -z defs linker option reports unresolved symbol references from > object > # files when building a shared library. > if("${CMAKE_VERSION}" VERSION_LESS "3.13") > Index: patches/patch-aom_ports_aarch32_cpudetect_c > =================================================================== > RCS file: patches/patch-aom_ports_aarch32_cpudetect_c > diff -N patches/patch-aom_ports_aarch32_cpudetect_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-aom_ports_aarch32_cpudetect_c 28 Feb 2024 16:06:36 > -0000 > @@ -0,0 +1,23 @@ > +Allow ARM CPU runtime detection code to build on OpenBSD. > + > +Index: aom_ports/aarch32_cpudetect.c > +--- aom_ports/aarch32_cpudetect.c.orig > ++++ aom_ports/aarch32_cpudetect.c > +@@ -12,7 +12,7 @@ > + > + #include "arm_cpudetect.h" > + > +-#if !CONFIG_RUNTIME_CPU_DETECT > ++#if !CONFIG_RUNTIME_CPU_DETECT || defined(__OpenBSD__) > + > + static int arm_get_cpu_caps(void) { > + // This function should actually be a no-op. There is no way to adjust > any of > +@@ -25,7 +25,7 @@ static int arm_get_cpu_caps(void) { > + return flags; > + } > + > +-#elif defined(_MSC_VER) // end !CONFIG_RUNTIME_CPU_DETECT > ++#elif defined(_MSC_VER) // end !CONFIG_RUNTIME_CPU_DETECT || __OpenBSD__ > + > + static int arm_get_cpu_caps(void) { > + int flags = 0; > Index: patches/patch-aom_ports_aarch64_cpudetect_c > =================================================================== > RCS file: patches/patch-aom_ports_aarch64_cpudetect_c > diff -N patches/patch-aom_ports_aarch64_cpudetect_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-aom_ports_aarch64_cpudetect_c 28 Feb 2024 16:06:36 > -0000 > @@ -0,0 +1,23 @@ > +Allow ARM CPU runtime detection code to build on OpenBSD. > + > +Index: aom_ports/aarch64_cpudetect.c > +--- aom_ports/aarch64_cpudetect.c.orig > ++++ aom_ports/aarch64_cpudetect.c > +@@ -15,7 +15,7 @@ > + #include <sys/sysctl.h> > + #endif > + > +-#if !CONFIG_RUNTIME_CPU_DETECT > ++#if !CONFIG_RUNTIME_CPU_DETECT || defined(__OpenBSD__) > + > + static int arm_get_cpu_caps(void) { > + // This function should actually be a no-op. There is no way to adjust > any of > +@@ -28,7 +28,7 @@ static int arm_get_cpu_caps(void) { > + return flags; > + } > + > +-#elif defined(__APPLE__) // end !CONFIG_RUNTIME_CPU_DETECT > ++#elif defined(__APPLE__) // end !CONFIG_RUNTIME_CPU_DETECT || __OpenBSD__ > + > + // sysctlbyname() parameter documentation for instruction set > characteristics: > + // > https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics > Index: patches/patch-aom_ports_arm_cpudetect_c > =================================================================== > RCS file: patches/patch-aom_ports_arm_cpudetect_c > diff -N patches/patch-aom_ports_arm_cpudetect_c > --- patches/patch-aom_ports_arm_cpudetect_c 29 May 2023 17:52:01 -0000 > 1.6 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,23 +0,0 @@ > -Allow ARM CPU runtime detection code to build on OpenBSD. > - > -Index: aom_ports/arm_cpudetect.c > ---- aom_ports/arm_cpudetect.c.orig > -+++ aom_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 || defined(__APPLE__) > -+#if !CONFIG_RUNTIME_CPU_DETECT || defined(__APPLE__) || defined(__OpenBSD__) > - > - int aom_arm_cpu_caps(void) { > - /* This function should actually be a no-op. There is no way to adjust > any of > -@@ -56,7 +56,7 @@ int aom_arm_cpu_caps(void) { > - return flags & mask; > - } > - > --#elif defined(_MSC_VER) /* end !CONFIG_RUNTIME_CPU_DETECT || __APPLE__ */ > -+#elif defined(_MSC_VER) /* end !CONFIG_RUNTIME_CPU_DETECT || __APPLE__ || > __OpenBSD__ */ > - /*For GetExceptionCode() and EXCEPTION_ILLEGAL_INSTRUCTION.*/ > - #undef WIN32_LEAN_AND_MEAN > - #define WIN32_LEAN_AND_MEAN > Index: patches/patch-build_cmake_aom_configure_cmake > =================================================================== > RCS file: patches/patch-build_cmake_aom_configure_cmake > diff -N patches/patch-build_cmake_aom_configure_cmake > --- patches/patch-build_cmake_aom_configure_cmake 9 Apr 2023 06:17:17 > -0000 1.10 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,22 +0,0 @@ > -ARM uses compiler intrinsics, so don't require GNU as. > - > -Index: build/cmake/aom_configure.cmake > ---- build/cmake/aom_configure.cmake.orig > -+++ build/cmake/aom_configure.cmake > -@@ -188,16 +188,6 @@ elseif(AOM_TARGET_CPU MATCHES "arm") > - endif() > - endif() > - find_program(as_executable_found ${AS_EXECUTABLE}) > -- if(NOT as_executable_found) > -- message( > -- FATAL_ERROR > -- "Unable to find assembler and optimizations are enabled." > -- "Searched for ${AS_EXECUTABLE}. Install it, add it to your path, or > " > -- "set the assembler directly by adding -DAS_EXECUTABLE=<assembler > path> " > -- "to your CMake command line." > -- "To build without optimizations, add -DAOM_TARGET_CPU=generic to > your " > -- "cmake command line.") > -- endif() > - string(STRIP "${AOM_AS_FLAGS}" AOM_AS_FLAGS) > - endif() > - > Index: patches/patch-third_party_x86inc_x86inc_asm > =================================================================== > RCS file: patches/patch-third_party_x86inc_x86inc_asm > diff -N patches/patch-third_party_x86inc_x86inc_asm > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-third_party_x86inc_x86inc_asm 28 Feb 2024 16:06:36 > -0000 > @@ -0,0 +1,28 @@ > +Index: third_party/x86inc/x86inc.asm > +--- third_party/x86inc/x86inc.asm.orig > ++++ third_party/x86inc/x86inc.asm > +@@ -52,6 +52,16 @@ > + %endif > + %endif > + > ++%if AOM_ARCH_X86_64 > ++%imacro _endbr64 0 > ++ dd 0xfa1e0ff3 > ++%endmacro > ++%else > ++%imacro _endbr64 0 > ++; empty > ++%endmacro > ++%endif > ++ > + %define WIN64 0 > + %define UNIX64 0 > + %if AOM_ARCH_X86_64 > +@@ -860,6 +870,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, > + %endif > + align function_align > + %2: > ++ _endbr64 > + RESET_MM_PERMUTATION ; needed for x86-64, also makes disassembly > somewhat nicer > + %xdefine rstk rsp ; copy of the original stack pointer, used > when greater alignment than the known stack alignment is required > + %assign stack_offset 0 ; stack pointer offset relative to the > return address > >