summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2018-11-27 19:16:24 +0200
committerEfraim Flashner <efraim@flashner.co.il>2018-11-27 19:58:01 +0200
commit8e59c5febd2dad171fe90caf04d8b3eb31ca3b31 (patch)
treeb2ab78bed1090ad0d526e5b29d1d503d4b204c4e
parent020d4d2cdc388242da91819cc1b146f1a6cce93b (diff)
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.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/x265-arm-flags.patch36
-rw-r--r--gnu/packages/video.scm10
3 files changed, 46 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 0cd9fad2e5..29d07f5192 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1243,6 +1243,7 @@ dist_patch_DATA = \
%D%/packages/patches/wpa-supplicant-fix-zeroed-keys.patch \
%D%/packages/patches/wpa-supplicant-fix-nonce-reuse.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/xboing-CVE-2004-0149.patch \
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
diff --git a/gnu/packages/patches/x265-arm-flags.patch b/gnu/packages/patches/x265-arm-flags.patch
new file mode 100644
index 0000000000..f17e26f6f1
--- /dev/null
+++ b/gnu/packages/patches/x265-arm-flags.patch
@@ -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})
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1e1c988c25..fc3ee5c72b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -405,7 +405,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(sha256
(base32
"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)))
(snippet '(begin
(delete-file-recursively "source/compat/getopt")
@@ -416,6 +417,10 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
#:configure-flags
;; Ensure position independent code for everyone.
(list "-DENABLE_PIC=TRUE"
+ ,@(if (string-prefix? "armhf" (or (%current-system)
+ (%current-target-system)))
+ '("-DENABLE_ASSEMBLY=OFF")
+ '())
(string-append "-DCMAKE_INSTALL_PREFIX="
(assoc-ref %outputs "out")))
#:phases
@@ -424,6 +429,9 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(lambda _
(delete-file-recursively "build")
(chdir "source")
+ ;; recognize armv8 in 32-bit mode as ARM
+ (substitute* "CMakeLists.txt"
+ (("armv6l") "armv8l"))
#t))
(add-before 'configure 'build-12-bit
(lambda* (#:key (configure-flags '()) #:allow-other-keys)