From: Brad Smith Subject: UPDATE: x265 4.3 To: ports@openbsd.org Date: Sat, 1 Aug 2026 01:44:56 -0400 Here is an update to x265 4.3. All depends build Ok. Tested on aarch64 and amd64. Index: Makefile =================================================================== RCS file: /cvs/ports/multimedia/x265/Makefile,v retrieving revision 1.63 diff -u -p -u -p -r1.63 Makefile --- Makefile 29 May 2026 16:14:51 -0000 1.63 +++ Makefile 31 Jul 2026 22:00:27 -0000 @@ -1,12 +1,12 @@ COMMENT= free H.265/HEVC encoder -VER= 4.2 +VER= 4.3 DISTNAME= x265_${VER} PKGNAME= x265-${VER} CATEGORIES= multimedia SITES= https://github.com/Multicorewareinc/x265/releases/download/${VER}/ -SHARED_LIBS= x265 26.0 +SHARED_LIBS= x265 27.0 HOMEPAGE= https://x265.org/ Index: distinfo =================================================================== RCS file: /cvs/ports/multimedia/x265/distinfo,v retrieving revision 1.29 diff -u -p -u -p -r1.29 distinfo --- distinfo 29 May 2026 16:14:51 -0000 1.29 +++ distinfo 31 Jul 2026 22:00:27 -0000 @@ -1,2 +1,2 @@ -SHA256 (x265_4.2.tar.gz) = QLHqBFPgMJ8OupNODd9TP49ilZZmeeiJTo8cHI1eEhA= -SIZE (x265_4.2.tar.gz) = 1833442 +SHA256 (x265_4.3.tar.gz) = g8U+TIu7jx4z7VnhCn1iHR14AcqFORDD60HwOLj/sSE= +SIZE (x265_4.3.tar.gz) = 2052112 Index: patches/patch-source_CMakeLists_txt =================================================================== RCS file: patches/patch-source_CMakeLists_txt diff -N patches/patch-source_CMakeLists_txt --- patches/patch-source_CMakeLists_txt 29 May 2026 16:14:51 -0000 1.11 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,56 +0,0 @@ -- Add run-time CPU feature detection for FreeBSD / OpenBSD -- Fix building AltiVec code on powerpc64 - -Index: source/CMakeLists.txt ---- source/CMakeLists.txt.orig -+++ source/CMakeLists.txt -@@ -91,7 +91,7 @@ elseif(ARM64MATCH GREATER "-1") - option(AARCH64_WARNINGS_AS_ERRORS "Build with -Werror for AArch64 Intrinsics files" OFF) - - option(AARCH64_RUNTIME_CPU_DETECT "Enable AArch64 run-time CPU feature detection" ON) -- if(NOT CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin|Windows") -+ if(NOT CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD|Darwin|Windows") - set(AARCH64_RUNTIME_CPU_DETECT OFF CACHE BOOL "" FORCE) - message(STATUS "Run-time CPU feature detection unsupported on this platform") - endif() -@@ -120,6 +120,10 @@ elseif(RISCV64MATCH GREATER "-1") - set(RISCV64 1) - - option(RISCV64_RUNTIME_CPU_DETECT "Enable RISCV64 run-time CPU feature detection" ON) -+ if(NOT CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD|OpenBSD") -+ set(RISCV64_RUNTIME_CPU_DETECT OFF CACHE BOOL "" FORCE) -+ message(STATUS "Run-time CPU feature detection unsupported on this platform") -+ endif() - - option(ENABLE_RVV "Enable RVV" ON) - -@@ -664,6 +668,16 @@ if(ENABLE_ASSEMBLY) - add_definitions(-DENABLE_ASSEMBLY) - endif() - -+check_symbol_exists(getauxval sys/auxv.h HAVE_GETAUXVAL) -+if(HAVE_GETAUXVAL) -+ add_definitions(-DHAVE_GETAUXVAL=1) -+endif() -+ -+check_symbol_exists(elf_aux_info sys/auxv.h HAVE_ELF_AUX_INFO) -+if(HAVE_ELF_AUX_INFO) -+ add_definitions(-DHAVE_ELF_AUX_INFO=1) -+endif() -+ - option(CHECKED_BUILD "Enable run-time sanity checks (debugging)" OFF) - if(CHECKED_BUILD) - add_definitions(-DCHECKED_BUILD=1) -@@ -785,7 +799,11 @@ if(POWER) - # IBM Power8 - option(ENABLE_ALTIVEC "Enable ALTIVEC profiling instrumentation" ON) - if(ENABLE_ALTIVEC) -- add_definitions(-DHAVE_ALTIVEC=1 -maltivec -mabi=altivec) -+ add_definitions(-DHAVE_ALTIVEC=1 -maltivec) -+ check_cxx_compiler_flag(-mabi=altivec CC_HAS_MABI_ALTIVEC) -+ if(CC_HAS_MABI_ALTIVEC) -+ add_definitions(-mabi=altivec) -+ endif() - add_definitions(-flax-vector-conversions -fpermissive) - else() - add_definitions(-DHAVE_ALTIVEC=0) Index: patches/patch-source_common_aarch64_cpu_h =================================================================== RCS file: patches/patch-source_common_aarch64_cpu_h diff -N patches/patch-source_common_aarch64_cpu_h --- patches/patch-source_common_aarch64_cpu_h 29 May 2026 16:14:51 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,27 +0,0 @@ -- Add run-time CPU feature detection for FreeBSD / OpenBSD - -Index: source/common/aarch64/cpu.h ---- source/common/aarch64/cpu.h.orig -+++ source/common/aarch64/cpu.h -@@ -127,7 +127,7 @@ static inline int aarch64_get_cpu_flags() - return flags; - } - --#elif defined(__linux__) -+#elif HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO - - #include - -@@ -142,10 +142,10 @@ static inline int aarch64_get_cpu_flags() - int flags = 0; - - #if HAVE_NEON_DOTPROD || HAVE_SVE -- unsigned long hwcap = getauxval(AT_HWCAP); -+ unsigned long hwcap = x265_getauxval(AT_HWCAP); - #endif - #if HAVE_NEON_I8MM || HAVE_SVE2 || HAVE_SVE2_BITPERM -- unsigned long hwcap2 = getauxval(AT_HWCAP2); -+ unsigned long hwcap2 = x265_getauxval(AT_HWCAP2); - #endif - - #if HAVE_NEON Index: patches/patch-source_common_aarch64_dct_S =================================================================== RCS file: patches/patch-source_common_aarch64_dct_S diff -N patches/patch-source_common_aarch64_dct_S --- patches/patch-source_common_aarch64_dct_S 2 Dec 2024 10:40:47 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,44 +0,0 @@ -Fix for aarch64 xonly. - -Index: source/common/aarch64/dct.S ---- source/common/aarch64/dct.S.orig -+++ source/common/aarch64/dct.S -@@ -32,9 +32,6 @@ - .section .rodata - #endif - --.align 4 -- --.text - .set idct16_shift_1, 7 - .set idct16_shift_2, 12-(BIT_DEPTH-8) - -@@ -99,7 +96,10 @@ tbl_const_dct_0: - .word 64, 83, 36, 89, 75, 50, 18, 0 // v0, v1 - .word 90, 87, 80, 70, 57, 43, 25, 9 // v2, v3 - -+.text - -+.align 4 -+ - // ***** idct 16x16 ***** - // void idct16(const int16_t* src, int16_t* dst, intptr_t dstStride) - function PFX(idct16_neon) -@@ -112,7 +112,7 @@ function PFX(idct16_neon) - stp d8, d9, [sp,#-16]! - sub sp, sp, #(16*16*2) - -- adr x8, tbl_const_idct_0 -+ movrel x8, tbl_const_idct_0 - ldp q0, q1, [x8] - - mov x5, sp -@@ -513,7 +513,7 @@ function PFX(dct16_neon) - stp d12, d13, [sp,#-16]! - stp d14, d15, [sp,#-16]! - -- adr x6, tbl_const_dct_0 -+ movrel x6, tbl_const_dct_0 - ld4r {v16.2d, v17.2d, v18.2d, v19.2d}, [x6], #32 - ld4r {v20.2d, v21.2d, v22.2d, v23.2d}, [x6], #32 - ld1 {v24.8h, v25.8h, v26.8h, v27.8h}, [x6], #64 Index: patches/patch-source_common_cpu_cpp =================================================================== RCS file: patches/patch-source_common_cpu_cpp diff -N patches/patch-source_common_cpu_cpp --- patches/patch-source_common_cpu_cpp 29 May 2026 16:14:51 -0000 1.5 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,77 +0,0 @@ -- Add run-time CPU feature detection for FreeBSD / OpenBSD - -Index: source/common/cpu.cpp ---- source/common/cpu.cpp.orig -+++ source/common/cpu.cpp -@@ -31,6 +31,10 @@ - #include "cpu.h" - #include "common.h" - -+#include -+#if HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO -+#include -+#endif - #if MACOS || SYS_FREEBSD - #include - #include -@@ -41,7 +45,7 @@ - #include - #endif - --#if X265_ARCH_ARM && !defined(HAVE_NEON) -+#if X265_ARCH_ARM && !defined(HAVE_NEON) && !(HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO) - #include - #include - static sigjmp_buf jmpbuf; -@@ -137,6 +141,22 @@ const cpu_name_t cpu_names[] = - { "", 0 }, - }; - -+unsigned long x265_getauxval(unsigned long type) -+{ -+#if HAVE_GETAUXVAL -+ return getauxval(type); -+#elif HAVE_ELF_AUX_INFO -+ unsigned long aux = 0; -+ int ret = elf_aux_info(type, &aux, sizeof(aux)); -+ if (ret != 0) -+ errno = ret; -+ return aux; -+#else -+ errno = ENOSYS; -+ return 0; -+#endif -+} -+ - #if X265_ARCH_X86 - - extern "C" { -@@ -357,6 +377,8 @@ void PFX(cpu_neon_test)(void); - int PFX(cpu_fast_neon_mrc_test)(void); - } - -+#define X265_ARM_HWCAP_NEON (1U << 12) -+ - uint32_t cpu_detect(bool benableavx512) - { - int flags = 0; -@@ -364,6 +386,11 @@ uint32_t cpu_detect(bool benableavx512) - #if HAVE_ARMV6 && ENABLE_ASSEMBLY - flags |= X265_CPU_ARMV6; - -+#if HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO -+ unsigned long hwcap = x265_getauxval(AT_HWCAP); -+ -+ if (hwcap & X265_ARM_HWCAP_NEON) flags |= X265_CPU_NEON; -+#else - // don't do this hack if compiled with -mfpu=neon - #if !HAVE_NEON - static void (* oldsig)(int); -@@ -381,6 +408,7 @@ uint32_t cpu_detect(bool benableavx512) - #endif // if !HAVE_NEON - - flags |= X265_CPU_NEON; -+#endif - - // fast neon -> arm (Cortex-A9) detection relies on user access to the - // cycle counter; this assumes ARMv7 performance counters. Index: patches/patch-source_common_cpu_h =================================================================== RCS file: patches/patch-source_common_cpu_h diff -N patches/patch-source_common_cpu_h --- patches/patch-source_common_cpu_h 2 Dec 2024 10:40:47 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -- Add run-time CPU feature detection for FreeBSD / OpenBSD - -Index: source/common/cpu.h ---- source/common/cpu.h.orig -+++ source/common/cpu.h -@@ -48,6 +48,8 @@ extern "C" void PFX(safe_intel_cpu_indicator_init)(voi - #define x265_emms() PFX(cpu_emms)() - #endif - -+unsigned long x265_getauxval(unsigned long); -+ - namespace X265_NS { - uint32_t cpu_detect(bool); - bool detect512(); Index: patches/patch-source_common_riscv64_cpu_h =================================================================== RCS file: patches/patch-source_common_riscv64_cpu_h diff -N patches/patch-source_common_riscv64_cpu_h --- patches/patch-source_common_riscv64_cpu_h 29 May 2026 16:14:51 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,59 +0,0 @@ -- Add run-time CPU feature detection for FreeBSD / OpenBSD - -Index: source/common/riscv64/cpu.h ---- source/common/riscv64/cpu.h.orig -+++ source/common/riscv64/cpu.h -@@ -28,12 +28,13 @@ - - #if RISCV64_RUNTIME_CPU_DETECT - --#if defined(__linux__) -+#if HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO - - #include - - #define HWCAP_RISCV64_RVV (1 << ('V' - 'A')) - -+#ifdef __linux__ - static int parse_proc_cpuinfo(const char *flag) { - FILE *file = fopen("/proc/cpuinfo", "r"); - if (file == NULL) -@@ -52,31 +53,34 @@ static int parse_proc_cpuinfo(const char *flag) { - fclose(file); - return found; - } -+#endif - - static inline uint32_t riscv64_cpu_detect() - { - uint32_t flags = 0; - -- unsigned long hwcap = getauxval(AT_HWCAP); -+ unsigned long hwcap = x265_getauxval(AT_HWCAP); - - if (hwcap & HWCAP_RISCV64_RVV) { - flags |= X265_CPU_RVV; - -+#ifdef __linux__ - if (parse_proc_cpuinfo("zbb")) - flags |= X265_CPU_ZBB; -+#endif - } - - return flags; - } - --#else // defined(__linux__) -+#else // HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO - #error \ - "Run-time CPU feature detection selected, but no detection method" \ - "available for your platform. Rerun cmake configure with" \ - "-DRISCV64_RUNTIME_CPU_DETECT=OFF." --#endif // defined(__linux__) -+#endif // HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO - --#else // if AARCH64_RUNTIME_CPU_DETECT -+#else // if RISCV64_RUNTIME_CPU_DETECT - - static inline uint32_t riscv64_cpu_detect() - {