+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

Reply via email to