Index | Thread | Search

From:
Peter Hessler <phessler@theapt.org>
Subject:
Re: UPDATE: aom 3.8.1
To:
Brad Smith <brad@comstyle.com>, ports@openbsd.org
Date:
Sun, 3 Mar 2024 16:26:14 +0100

Download raw body.

Thread
This fails to build for me on arm64:

===>  Configuring for aom-3.8.1
-- The C compiler identification is Clang 16.0.6
-- The CXX compiler identification is Clang 16.0.6
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/obj/ports/aom-3.8.1/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/obj/ports/aom-3.8.1/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
--- aom_configure: Detected CPU: arm64
-- The ASM compiler identification is unknown
-- Found assembler: as
CMake Error at build/cmake/aom_configure.cmake:212 (enable_language):
  The CMAKE_ASM_COMPILER:

    as

  is not a full path and was not found in the PATH.

  Tell CMake where to find the compiler by setting either the environment
  variable "ASM" or the CMake cache entry CMAKE_ASM_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.
Call Stack (most recent call first):
  CMakeLists.txt:73 (include)


-- Warning: Did not find file Compiler/-ASM
-- Configuring incomplete, errors occurred!


note that there is no "as" or "llvm-as" binary on arm64.



On 2024 Feb 28 (Wed) at 16:40:02 +0000 (+0000), Stuart Henderson wrote:
:On 2024/02/28 17:28, Jan Beich wrote:
:> Brad Smith <brad@comstyle.com> writes:
:> 
:> >  GH_ACCOUNT=	jbeich
:> >  GH_PROJECT=	aom
:> > -GH_TAGNAME=	v3.6.1
:> > +GH_TAGNAME=	v3.8.1
:> 
:> If you don't use snapshots or RCs better migrate off my GitHub mirror.
:> According to Repology the download link would be
:> 
:> https://storage.googleapis.com/aom-releases/libaom-3.8.1.tar.gz
:> 
:
:Updated for that. No difference in the contents of the tars after
:extracting.
:
: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:39:18 -0000
:@@ -1,13 +1,14 @@
: COMMENT=	Alliance for Open Media AV1 video codec
: 
:-GH_ACCOUNT=	jbeich
:-GH_PROJECT=	aom
:-GH_TAGNAME=	v3.6.1
:+V=		3.8.1
:+DISTNAME=	libaom-$V
:+PKGNAME=	aom-$V
: CATEGORIES=	multimedia
: 
:-SHARED_LIBS=	aom	4.0
:+SHARED_LIBS=	aom	4.1
: 
: HOMEPAGE=	https://aomedia.org/
:+SITES=		https://storage.googleapis.com/aom-releases/
: 
: MAINTAINER=	Brad Smith <brad@comstyle.com>
: 
: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:39:18 -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 (libaom-3.8.1.tar.gz) = 3txlBggSp9+AHAJwov6L13PGuwtgHyFE7PvGLcD2cco=
:+SIZE (libaom-3.8.1.tar.gz) = 5450909
: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:39:18 -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:39:18 -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:39:18 -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:39:18 -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
:

-- 
"Every time I think I know where it's at, they move it."