diff --git a/srcpkgs/qt5/patches/mips-fix.patch b/srcpkgs/qt5/patches/mips-fix.patch new file mode 100644 index 00000000000..f53edff4a13 --- /dev/null +++ b/srcpkgs/qt5/patches/mips-fix.patch @@ -0,0 +1,40 @@ +--- qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2016-12-07 06:58:00.000000000 +0100 ++++ qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2017-12-12 19:51:36.048485198 +0100 +@@ -377,7 +377,7 @@ + + #if (defined(mips) || defined(__mips__) || defined(MIPS) || defined(_MIPS_)) + #define WTF_CPU_MIPS 1 +-#include ++#include + #if defined(__MIPSEB__) + #define WTF_CPU_BIG_ENDIAN 1 + #endif +--- qtwebengine/src/3rdparty/chromium/third_party/webrtc/typedefs.h 2017-01-03 10:28:53.000000000 +0100 ++++ qtwebengine/src/3rdparty/chromium/third_party/webrtc/typedefs.h 2017-12-12 20:11:16.501569388 +0100 +@@ -47,6 +47,12 @@ + #elif defined(__pnacl__) + #define WEBRTC_ARCH_32_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN ++#elif defined(__MIPSEB__) ++#define WEBRTC_ARCH_32_BITS ++#define WEBRTC_ARCH_BIG_ENDIAN ++#elif defined(__MIPSEL__) ++#define WEBRTC_ARCH_32_BITS ++#define WEBRTC_ARCH_LITTLE_ENDIAN + #else + #error Please add support for your architecture in typedefs.h + #endif +--- qtwebengine/src/3rdparty/chromium/build/build_config.h 2017-01-03 10:28:53.000000000 +0100 ++++ qtwebengine/src/3rdparty/chromium/build/build_config.h 2017-12-12 22:35:11.094185212 +0100 +@@ -132,6 +132,11 @@ + #define ARCH_CPU_MIPSEL 1 + #define ARCH_CPU_32_BITS 1 + #define ARCH_CPU_LITTLE_ENDIAN 1 + #endif ++#elif defined(__MIPSEB__) ++#define ARCH_CPU_MIPS_FAMILY 1 ++#define ARCH_CPU_MIPSEL 1 ++#define ARCH_CPU_32_BITS 1 ++#define ARCH_CPU_BIG_ENDIAN 1 + #else + #error Please add support for your architecture in build/build_config.h diff --git a/srcpkgs/qt5/patches/mipseb-fix.patch b/srcpkgs/qt5/patches/mipseb-fix.patch new file mode 100644 index 00000000000..f26831d8626 --- /dev/null +++ b/srcpkgs/qt5/patches/mipseb-fix.patch @@ -0,0 +1,66 @@ +--- qtbase/src/plugins/platforms/vnc/qvncclient.cpp 2017-01-18 15:20:58.000000000 +0100 ++++ qtbase/src/plugins/platforms/vnc/qvncclient.cpp 2017-12-12 18:56:14.884248330 +0100 +@@ -142,8 +142,8 @@ + case 16: { + quint16 p = *reinterpret_cast(src); + #if Q_BYTE_ORDER == Q_BIG_ENDIAN +- if (swapBytes) +- p = ((p & 0xff) << 8) | ((p & 0xff00) >> 8); ++ if (m_swapBytes) ++ p = (p << 8) | (p >> 8); + #endif + r = (p >> 11) & 0x1f; + g = (p >> 5) & 0x3f; +@@ -484,7 +484,7 @@ + m_sameEndian = (QSysInfo::ByteOrder == QSysInfo::BigEndian) == !!m_pixelFormat.bigEndian; + m_needConversion = pixelConversionNeeded(); + #if Q_BYTE_ORDER == Q_BIG_ENDIAN +- m_swapBytes = qvnc_screen->swapBytes(); ++ m_swapBytes = m_server->screen()->swapBytes(); + #endif + } + } +@@ -639,7 +639,7 @@ + return true; + + #if Q_BYTE_ORDER == Q_BIG_ENDIAN +- if (qvnc_screen->swapBytes()) ++ if (m_server->screen()->swapBytes()) + return true; + #endif + +--- qtbase/src/plugins/platforms/vnc/qvncscreen.cpp 2017-01-18 15:20:58.000000000 +0100 ++++ qtbase/src/plugins/platforms/vnc/qvncscreen.cpp 2017-12-12 18:42:41.609190327 +0100 +@@ -172,14 +172,16 @@ + } + + #if Q_BYTE_ORDER == Q_BIG_ENDIAN +-bool QVNCScreen::swapBytes() const ++bool QVncScreen::swapBytes() const + { + if (depth() != 16) + return false; +- +- if (screen()) +- return screen()->frameBufferLittleEndian(); +- return frameBufferLittleEndian(); ++ for (int y = 0; y < mScreenImage->height(); y++) { ++ quint16* p = reinterpret_cast(mScreenImage->scanLine(y)); ++ for (int x = 0; x < mScreenImage->width(); x++, p++) ++ *p = (*p >> 8) | (*p << 8); ++ } ++ return true; + } + #endif + +--- qtbase/src/plugins/platforms/vnc/qvncscreen.h 2017-01-18 15:20:58.000000000 +0100 ++++ qtbase/src/plugins/platforms/vnc/qvncscreen.h 2017-12-12 17:38:29.003915557 +0100 +@@ -73,7 +73,7 @@ + void clearDirty() { dirtyRegion = QRegion(); } + + #if Q_BYTE_ORDER == Q_BIG_ENDIAN +- bool swapBytes() const ++ bool swapBytes() const; + #endif + + QStringList mArgs; diff --git a/srcpkgs/qt5/patches/qt-cross-enable_tools.patch b/srcpkgs/qt5/patches/qt-cross-enable_tools.patch new file mode 100644 index 00000000000..1388c764a52 --- /dev/null +++ b/srcpkgs/qt5/patches/qt-cross-enable_tools.patch @@ -0,0 +1,30 @@ +--- qttools/src/src.pro 2017-01-02 07:50:13.000000000 +0100 ++++ qttools/src/src.pro 2017-12-21 12:27:33.414867228 +0100 +@@ -1,20 +1,13 @@ + TEMPLATE = subdirs + +-qtHaveModule(widgets) { +- no-png { +- message("Some graphics-related tools are unavailable without PNG support") +- } else { +- SUBDIRS = assistant \ +- pixeltool \ +- designer ++SUBDIRS = assistant \ ++ pixeltool \ ++ designer \ ++ linguist \ ++ qdoc \ ++ qtattributionsscanner + +- linguist.depends = designer +- } +-} +- +-SUBDIRS += linguist \ +- qdoc \ +- qtattributionsscanner ++linguist.depends = designer + + !android|android_app: SUBDIRS += qtplugininfo + diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template index 29aaa8808e6..a2af1c4a89d 100644 --- a/srcpkgs/qt5/template +++ b/srcpkgs/qt5/template @@ -41,6 +41,9 @@ CXXFLAGS+=" -Wno-deprecated-declarations -fno-delete-null-pointer-checks" LDFLAGS="-pthread -ldl -fPIE" case "$XBPS_TARGET_MACHINE" in + armv5*|mips*) # Won't build for these + broken=yes + ;; armv7*) # Force use of neon and enable libvpx CXXFLAGS+=" -mfpu=neon" ;;