gnu: x265: Fix building on armhf-linux.

* gnu/packages/video.scm (x265)[patches]: Add patch.
[arguments]: Add a configure-flag to disable assembly. Adjust a custom
phase to recognize armv8 as 32-bit arm when masquerading as armhf-linux.
This commit is contained in:
Efraim Flashner 2018-11-27 19:16:24 +02:00
parent 020d4d2cdc
commit 8e59c5febd
No known key found for this signature in database
GPG Key ID: 41AAE7DCCA3D8351
3 changed files with 46 additions and 1 deletions

View File

@ -1243,6 +1243,7 @@ dist_patch_DATA = \
%D%/packages/patches/wpa-supplicant-fix-zeroed-keys.patch \ %D%/packages/patches/wpa-supplicant-fix-zeroed-keys.patch \
%D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch \ %D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch \
%D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \
%D%/packages/patches/x265-arm-flags.patch \
%D%/packages/patches/x265-detect512-all-arches.patch \ %D%/packages/patches/x265-detect512-all-arches.patch \
%D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \

View File

@ -0,0 +1,36 @@
https://sources.debian.org/src/x265/2.9-3/debian/patches/0001-Fix-arm-flags.patch/
From: Sebastian Ramacher <sramacher@debian.org>
Date: Wed, 26 Apr 2017 22:05:06 +0200
Subject: Fix arm* flags
---
source/CMakeLists.txt | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 33b6523..25aecbb 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -72,7 +72,7 @@ elseif(ARMMATCH GREATER "-1")
endif()
message(STATUS "Detected ARM target processor")
set(ARM 1)
- add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1)
+ # add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1)
else()
message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown")
message(STATUS "Please add this value near ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE}")
@@ -230,12 +230,8 @@ if(GCC)
if(ARM AND CROSS_COMPILE_ARM)
set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC)
elseif(ARM)
- 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()
add_definitions(${ARM_ARGS})

View File

@ -405,7 +405,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(sha256 (sha256
(base32 (base32
"090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb")) "090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb"))
(patches (search-patches "x265-detect512-all-arches.patch")) (patches (search-patches "x265-arm-flags.patch"
"x265-detect512-all-arches.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
(delete-file-recursively "source/compat/getopt") (delete-file-recursively "source/compat/getopt")
@ -416,6 +417,10 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
#:configure-flags #:configure-flags
;; Ensure position independent code for everyone. ;; Ensure position independent code for everyone.
(list "-DENABLE_PIC=TRUE" (list "-DENABLE_PIC=TRUE"
,@(if (string-prefix? "armhf" (or (%current-system)
(%current-target-system)))
'("-DENABLE_ASSEMBLY=OFF")
'())
(string-append "-DCMAKE_INSTALL_PREFIX=" (string-append "-DCMAKE_INSTALL_PREFIX="
(assoc-ref %outputs "out"))) (assoc-ref %outputs "out")))
#:phases #:phases
@ -424,6 +429,9 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(lambda _ (lambda _
(delete-file-recursively "build") (delete-file-recursively "build")
(chdir "source") (chdir "source")
;; recognize armv8 in 32-bit mode as ARM
(substitute* "CMakeLists.txt"
(("armv6l") "armv8l"))
#t)) #t))
(add-before 'configure 'build-12-bit (add-before 'configure 'build-12-bit
(lambda* (#:key (configure-flags '()) #:allow-other-keys) (lambda* (#:key (configure-flags '()) #:allow-other-keys)