media-libs/x265: Fix x32 build, bug #510890
authorBertrand Jacquin <bertrand@jacquin.bzh>
Mon, 28 Jul 2014 18:12:43 +0000 (20:12 +0200)
committerBertrand Jacquin <bertrand@jacquin.bzh>
Tue, 13 Oct 2015 23:26:19 +0000 (00:26 +0100)
x32 arch as defined on https://sites.google.com/site/x32abi is neither
X86 nor X64, then forcing -march=i686 leads to build failure as wrong
-march is used.

Forcing -march, -mfloat-abi and -mfpu for ARM is also wrong
As a global sanity sake, disable all forced -march in CMakeLists

Upstream report: https://bitbucket.org/multicoreware/x265/pull-requests/21/build-disable-march-selection-from/diff

Package-Manager: portage-2.2.20.1

media-libs/x265/files/1.8-build-Disable-march-selection-from-CMakeLists.txt.patch [new file with mode: 0644]
media-libs/x265/x265-1.8.ebuild
media-libs/x265/x265-9999.ebuild

diff --git a/media-libs/x265/files/1.8-build-Disable-march-selection-from-CMakeLists.txt.patch b/media-libs/x265/files/1.8-build-Disable-march-selection-from-CMakeLists.txt.patch
new file mode 100644 (file)
index 0000000..33ee254
--- /dev/null
@@ -0,0 +1,35 @@
+From e89069148db716d30fb81c798d0cfd83250a9f5a Mon Sep 17 00:00:00 2001
+From: Bertrand Jacquin <bertrand@jacquin.bzh>
+Date: Sat, 10 Oct 2015 00:05:41 +0100
+Subject: [PATCH] build: Disable -march selection from CMakeLists.txt
+
+x32 arch as defined on https://sites.google.com/site/x32abi is neither
+X86 nor X64, then forcing -march=i686 leads to build failure as wrong
+-march is used.
+
+Forcing -march, -mfloat-abi and -mfpu for ARM is also wrong
+
+As a global sanity sake, disable all forced -march in CMakeLists
+---
+ source/CMakeLists.txt | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
+index 764d5f2..fbc0d49 100644
+--- a/source/CMakeLists.txt
++++ b/source/CMakeLists.txt
+@@ -167,14 +167,7 @@ if(GCC)
+     if(NATIVE_BUILD)
+         if(INTEL_CXX)
+             add_definitions(-xhost)
+-        else()
+-            add_definitions(-march=native)
+         endif()
+-    elseif(X86 AND NOT X64)
+-        add_definitions(-march=i686)
+-    endif()
+-    if(ARM)
+-        add_definitions(-march=armv6 -mfloat-abi=hard -mfpu=vfp)
+     endif()
+     if(FPROFILE_GENERATE)
+         if(INTEL_CXX)
index ee4a32fe9fae3cd095331bc6b3789b3b632807dd..8138afcc4b0eb88f474bac8caf4468193e590f98 100644 (file)
@@ -41,6 +41,10 @@ src_unpack() {
        fi
 }
 
+src_prepare() {
+       epatch "${FILESDIR}/${PV}-build-Disable-march-selection-from-CMakeLists.txt.patch"      # bug #510890
+}
+
 multilib_src_configure() {
        append-cflags -fPIC
        append-cxxflags -fPIC
@@ -51,9 +55,12 @@ multilib_src_configure() {
                -DLIB_INSTALL_DIR="$(get_libdir)"
        )
 
-       if [ "${ABI}" = x86 ] ; then
+       if [[ ${ABI} = x86 ]] ; then
                use 10bit && ewarn "Disabling 10bit support on x86 as it does not build (or requires to disable assembly optimizations)"
                mycmakeargs+=( -DHIGH_BIT_DEPTH=OFF )
+       elif [[ ${ABI} = x32 ]] ; then
+               # bug #510890
+               mycmakeargs+=( -DENABLE_ASSEMBLY=OFF )
        fi
 
        cmake-utils_src_configure
index 8a3e36f86b72bdcda72538eb5818036dc3405ee3..5b0348cfe2a31579d79b3b0dfc55e3f85ecb3ba6 100644 (file)
@@ -51,9 +51,12 @@ multilib_src_configure() {
                -DLIB_INSTALL_DIR="$(get_libdir)"
        )
 
-       if [ "${ABI}" = x86 ] ; then
+       if [[ ${ABI} = x86 ]] ; then
                use 10bit && ewarn "Disabling 10bit support on x86 as it does not build (or requires to disable assembly optimizations)"
                mycmakeargs+=( -DHIGH_BIT_DEPTH=OFF )
+       elif [[ ${ABI} = x32 ]] ; then
+               # bug #510890
+               mycmakeargs+=( -DENABLE_ASSEMBLY=OFF )
        fi
 
        cmake-utils_src_configure