extra/x265 to 3.5-1.1

This commit is contained in:
Kevin Mihelich 2022-02-07 04:03:59 +00:00
parent fb02f9cdbe
commit a3634f2d41
3 changed files with 66 additions and 86 deletions

View File

@ -0,0 +1,60 @@
From a261a1e54c548e6806bf6a21e06da835af9934bb Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Mon, 7 Feb 2022 04:13:22 +0000
Subject: [PATCH] arm fixes
---
source/CMakeLists.txt | 29 ++++++-----------------------
1 file changed, 6 insertions(+), 23 deletions(-)
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index a407271b4..bfcd11f05 100755
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -76,8 +76,8 @@ elseif(ARMMATCH GREATER "-1")
set(ARM64 1)
add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=1 -DHAVE_ARMV6=0)
else()
- message(STATUS "Detected ARM target processor")
- add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=1)
+ message(STATUS "Detected ARMV7 system processor")
+ add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=0 -DHAVE_NEON=1 -fPIC)
endif()
else()
message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown")
@@ -238,28 +238,11 @@ if(GCC)
endif()
endif()
endif()
- if(ARM AND CROSS_COMPILE_ARM)
- if(ARM64)
- set(ARM_ARGS -fPIC)
- else()
- set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC)
- endif()
- message(STATUS "cross compile arm")
- elseif(ARM)
- if(ARM64)
- set(ARM_ARGS -fPIC)
- add_definitions(-DHAVE_NEON)
- else()
- find_package(Neon)
- if(CPU_HAS_NEON)
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC)
- add_definitions(-DHAVE_NEON)
- else()
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm)
- endif()
- endif()
+ if(ARM64)
+ set(ARM_ARGS -fPIC)
+ add_definitions(-DHAVE_NEON)
+ add_definitions(${ARM_ARGS})
endif()
- add_definitions(${ARM_ARGS})
if(FPROFILE_GENERATE)
if(INTEL_CXX)
add_definitions(-prof-gen -prof-dir="${CMAKE_CURRENT_BINARY_DIR}")
--
2.33.0

View File

@ -4,13 +4,11 @@
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - patch to attempt fixing ARM hackery by bandwagoning developers
# - retain 10/12 bit separation for AArch64
# - disable all ARM assembly - version 2.8 broke ARM support completely
# - patch from upstream bug https://bitbucket.org/multicoreware/x265/issues/442
# - don't build 12- and 10-bit variants
pkgname=x265
pkgver=3.5
pkgrel=1
pkgrel=1.1
pkgdesc='Open Source H265/HEVC video encoder'
arch=(x86_64)
url=https://bitbucket.org/multicoreware/x265_git
@ -25,9 +23,9 @@ makedepends=(
provides=(libx265.so)
_tag=f0c1022b6be121a753ff02853fbe33da71988656
source=(git+https://bitbucket.org/multicoreware/x265_git#tag=${_tag}
arm.patch)
0001-arm-fixes.patch)
sha256sums=('SKIP'
'067b934ae83339deedc58608d272529a004789c3e2819b94636d66a5806fd64b')
'9a527deb44ed5be459519d1e6721020bcbcbe74e73896b59e6df3a62888f152c')
pkgver() {
cd x265_git
@ -37,15 +35,13 @@ pkgver() {
prepare() {
cd x265_git
patch -p1 -i ../arm.patch
git apply ../0001-arm-fixes.patch
}
build() {
[[ $CARCH != "aarch64" ]] && CONFIG="-DENABLE_ASSEMBLY=OFF"
cmake -S x265_git/source -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_SHARED=TRUE \
$CONFIG
-DENABLE_SHARED=TRUE
ninja -C build
}

View File

@ -1,76 +0,0 @@
diff -r 2a65b7209850 source/CMakeLists.txt
--- a/source/CMakeLists.txt Fri May 29 23:09:35 2020 +0530
+++ b/source/CMakeLists.txt Tue Jun 09 12:49:19 2020 -0600
@@ -40,7 +40,7 @@
# System architecture detection
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSPROC)
set(X86_ALIASES x86 i386 i686 x86_64 amd64)
-set(ARM_ALIASES armv6l armv7l aarch64)
+set(ARM_ALIASES armv5tel armv6l armv7l aarch64)
list(FIND X86_ALIASES "${SYSPROC}" X86MATCH)
list(FIND ARM_ALIASES "${SYSPROC}" ARMMATCH)
set(POWER_ALIASES ppc64 ppc64le)
@@ -76,8 +76,16 @@
set(ARM64 1)
add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=1 -DHAVE_ARMV6=0)
else()
- message(STATUS "Detected ARM target processor")
- add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=1)
+ if(${SYSPROC} MATCHES "armv5.*")
+ message(STATUS "Detected ARMV5 system processor")
+ add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=0 -DHAVE_NEON=0)
+ elseif(${SYSPROC} STREQUAL "armv6l")
+ message(STATUS "Detected ARMV6 system processor")
+ add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=0 -DHAVE_NEON=0)
+ elseif(${SYSPROC} STREQUAL "armv7l")
+ message(STATUS "Detected ARMV7 system processor")
+ add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=0 -DHAVE_NEON=0 -fPIC)
+ endif()
endif()
else()
message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown")
@@ -238,28 +246,11 @@
endif()
endif()
endif()
- if(ARM AND CROSS_COMPILE_ARM)
- if(ARM64)
- set(ARM_ARGS -fPIC)
- else()
- set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC)
- endif()
- message(STATUS "cross compile arm")
- elseif(ARM)
- if(ARM64)
- set(ARM_ARGS -fPIC)
- add_definitions(-DHAVE_NEON)
- else()
- find_package(Neon)
- if(CPU_HAS_NEON)
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC)
- add_definitions(-DHAVE_NEON)
- else()
- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm)
- endif()
- endif()
+ if(ARM64)
+ set(ARM_ARGS -fPIC)
+ add_definitions(-DHAVE_NEON)
+ add_definitions(${ARM_ARGS})
endif()
- add_definitions(${ARM_ARGS})
if(FPROFILE_GENERATE)
if(INTEL_CXX)
add_definitions(-prof-gen -prof-dir="${CMAKE_CURRENT_BINARY_DIR}")
diff -r 2a65b7209850 source/common/cpu.cpp
--- a/source/common/cpu.cpp Fri May 29 23:09:35 2020 +0530
+++ b/source/common/cpu.cpp Tue Jun 09 12:49:19 2020 -0600
@@ -39,7 +39,7 @@
#include <machine/cpu.h>
#endif
-#if X265_ARCH_ARM && !defined(HAVE_NEON)
+#if X265_ARCH_ARM && (!defined(HAVE_NEON) || HAVE_NEON==0)
#include <signal.h>
#include <setjmp.h>
static sigjmp_buf jmpbuf;