Download raw body.
UPDATE: aom 3.8.1
+cc kettenis for the IBT patch
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
UPDATE: aom 3.8.1