qt5base: Add support for MIPS64 BigEndian
authorVicente Olivert Riera <Vincent.Riera@imgtec.com>
Tue, 17 Dec 2013 13:57:31 +0000 (13:57 +0000)
committerPeter Korsgaard <peter@korsgaard.com>
Thu, 19 Dec 2013 15:34:23 +0000 (16:34 +0100)
This patch adds support for MIPS64 BigEndian platforms and has already
been merged upstream:

https://github.com/qtproject/qtbase/commit/cea101bd10cc158b97d5fbf45b33dad9b649c08b

Now we can remove the restriction on the Config.in to disable the
selection of this packages on MIPS64 BigEndian platforms.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/qt5/Config.in
package/qt5/qt5base/qt5base-0001-Fix-build-MIPS64-bigendian.patch [new file with mode: 0644]

index b92d3292b6f7d5570187c953aad0f273e01cedea..42724dc15d4ca772375c32e82ce6afe52fc2fe63 100644 (file)
@@ -9,7 +9,6 @@ menuconfig BR2_PACKAGE_QT5
        depends on BR2_INET_IPV6
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on !BR2_PACKAGE_QT
-       depends on !BR2_mips64 || !BR2_MIPS_NABI64
        help
          This option enables the Qt5 framework. Sub-options allow to
          select which modules should be built.
diff --git a/package/qt5/qt5base/qt5base-0001-Fix-build-MIPS64-bigendian.patch b/package/qt5/qt5base/qt5base-0001-Fix-build-MIPS64-bigendian.patch
new file mode 100644 (file)
index 0000000..00dcd48
--- /dev/null
@@ -0,0 +1,51 @@
+qt5base: Fix build error on 64bit BigEndian platforms
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+From cea101bd10cc158b97d5fbf45b33dad9b649c08b Mon Sep 17 00:00:00 2001
+From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+Date: Mon, 2 Dec 2013 13:59:34 +0000
+Subject: [PATCH] qtbase: Fix build error on 64bit BigEndian platforms
+
+The functions fromBytesToWord() and fromWordToBytes() are called when
+building on 64bit BigEndian platforms. It fails because those
+functions are disabled on the source code. Enabling those functions for
+64bit BigEndian platforms fixes the problem.
+
+Task-number: QTBUG-35228
+
+Change-Id: I5ccacd4fb5051df05f67c8da879b3a9e49953861
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
+Reviewed-by: Richard J. Moore <rich@kde.org>
+---
+ src/3rdparty/sha3/KeccakF-1600-opt64.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+ mode change 100755 => 100644 src/3rdparty/sha3/KeccakF-1600-opt64.c
+
+diff --git a/src/3rdparty/sha3/KeccakF-1600-opt64.c b/src/3rdparty/sha3/KeccakF-1600-opt64.c
+old mode 100755
+new mode 100644
+index 7bd442e..a547bb5
+--- a/src/3rdparty/sha3/KeccakF-1600-opt64.c
++++ b/src/3rdparty/sha3/KeccakF-1600-opt64.c
+@@ -328,7 +328,7 @@ static void KeccakPermutation(unsigned char *state)
+     KeccakPermutationOnWords((UINT64*)state);
+ }
+-#if 0 // Unused in the Qt configuration
++#if (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN)
+ static void fromBytesToWord(UINT64 *word, const UINT8 *bytes)
+ {
+     unsigned int i;
+@@ -449,7 +449,7 @@ static void KeccakAbsorb(unsigned char *state, const unsigned char *data, unsign
+ #endif
+ }
+-#if 0 // Unused in the Qt configuration
++#if (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN)
+ static void fromWordToBytes(UINT8 *bytes, const UINT64 word)
+ {
+     unsigned int i;
+-- 
+1.8.5.1
+