All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [git commit branch/2019.02.x] package/qt5/qt5base: fix icu detection in Qt 5.6.3
@ 2019-10-31  8:19 Peter Korsgaard
  0 siblings, 0 replies; only message in thread
From: Peter Korsgaard @ 2019-10-31  8:19 UTC (permalink / raw)
  To: buildroot

commit: https://git.buildroot.net/buildroot/commit/?id=15a0bb579fa3b9719f4e37c5391a8dea46d8248e
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/2019.02.x

icu is required to build Q5tWebkit.
When UChar is defined as char16_t in ICU, then qtbase fails to detect ICU.
The issue is described https://bugreports.qt.io/browse/QTBUG-49586

Build fails with following error messages:
...
ustring.h:473:20: error: ???UChar??? does not name a type
 u_strCompare(const UChar *s1, int32_t length1,
                    ^
          ^
make[2]: *** [Makefile:195: icu.o] Error 1
ICU disabled.
The ICU library support cannot be enabled.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 89a82e7210874271d82a255ae7c2ded65b900ff7)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 .../5.6.3/0004-fix-icu-build-for-qt5webkit.patch   | 74 ++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/package/qt5/qt5base/5.6.3/0004-fix-icu-build-for-qt5webkit.patch b/package/qt5/qt5base/5.6.3/0004-fix-icu-build-for-qt5webkit.patch
new file mode 100644
index 0000000000..0d166b848a
--- /dev/null
+++ b/package/qt5/qt5base/5.6.3/0004-fix-icu-build-for-qt5webkit.patch
@@ -0,0 +1,74 @@
+From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
+Date: Mon, 23 Nov 2015 03:54:00 +0000
+Subject: [PATCH 1/1] When UChar is defined as char16_t in ICU, then qtbase fails to detect ICU.
+
+Build fails with following error:
+
+ICU auto-detection... ()
+x86_64-pc-linux-gnu-g++ -c -march=core2 -O2 -fno-ident \
+ -frecord-gcc-switches -pipe -Wall -O2 -Wall -W -fPIC  -I. \
+ -I/var/tmp/portage/dev-qt/qtcore-5.5.1/work/qtbase-opensource-src-5.5.1/mkspecs/linux-g++ -o icu.o icu.cpp
+In file included from /usr/include/unicode/utypes.h:36:0,
+                 from icu.cpp:34:
+/usr/include/unicode/umachine.h:306:13: error: 'char16_t' does not name a type
+     typedef char16_t UChar;
+             ^
+In file included from /usr/include/unicode/utypes.h:37:0,
+                 from icu.cpp:34:
+/usr/include/unicode/uversion.h:165:55: error: 'UChar' does not name a type
+ u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
+                                                       ^
+...
+Makefile:177: recipe for target 'icu.o' failed
+gmake: *** [icu.o] Error 1
+ICU disabled.
+The ICU library support cannot be enabled.
+
+This change isn't needed for new Qt versions, because c++11 is mandatory since 5.7.
+Upstream desided not to merge this change into old branches, like 5.6.
+Original patch was slightly modified to apply cleanly on Qt 5.6.3.
+
+Fetch from: https://bugreports.qt.io/secure/attachment/52478/qtbase-5.5.1-icu.patch
+Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
+Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
+
+---
+diff -purN qt5base-5.6.3.orig/config.tests/unix/compile.test qt5base-5.6.3/config.tests/unix/compile.test
+--- qt5base-5.6.3.orig/config.tests/unix/compile.test	2019-08-11 00:35:33.181545706 +0300
++++ qt5base-5.6.3/config.tests/unix/compile.test	2017-09-06 15:13:54.000000000 +0300
+@@ -47,7 +47,7 @@ while [ "$#" -gt 0 ]; do
+         INC=`echo $PARAM | sed -e 's/^-I//'`
+         INCLUDEPATH="$INCLUDEPATH \"$INC\""
+         ;;
+-    -f*|-D*)
++    -f*|-D*|-std=*)
+         CFLAGS="$CFLAGS \"$PARAM\""
+         CXXFLAGS="$CXXFLAGS \"$PARAM\""
+         ;;
+diff -purN qt5base-5.6.3.orig/configure qt5base-5.6.3/configure
+--- qt5base-5.6.3.orig/configure	2019-08-11 00:57:45.488214036 +0300
++++ qt5base-5.6.3/configure	2017-09-06 15:13:54.000000000 +0300
+@@ -5183,8 +5183,10 @@ fi
+ 
+ # auto-detect libicu support
+ if [ "$CFG_ICU" != "no" ]; then
+-    if compileTest unix/icu "ICU"; then
++    QT_CXXFLAGS_ICU=`icu-config --cxxflags 2>/dev/null`
++    if compileTest unix/icu "ICU" $QT_CXXFLAGS_ICU; then
+         [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
++        QMakeVar set QT_CXXFLAGS_ICU "$QT_CXXFLAGS_ICU"
+     else
+         if [ "$CFG_ICU" = "auto" ]; then
+             CFG_ICU=no
+diff -purN qt5base-5.6.3.orig/doc/Makefile qt5base-5.6.3/doc/Makefile
+diff -purN qt5base-5.6.3.orig/src/corelib/tools/tools.pri qt5base-5.6.3/src/corelib/tools/tools.pri
+--- qt5base-5.6.3.orig/src/corelib/tools/tools.pri	2019-08-11 00:45:45.073818635 +0300
++++ qt5base-5.6.3/src/corelib/tools/tools.pri	2017-09-06 15:13:54.000000000 +0300
+@@ -169,6 +169,7 @@ contains(QT_CONFIG,icu) {
+                tools/qcollator_icu.cpp \
+                tools/qtimezoneprivate_icu.cpp
+     DEFINES += QT_USE_ICU
++    QMAKE_CXXFLAGS += $$QT_CXXFLAGS_ICU
+ } else: win32 {
+     SOURCES += tools/qcollator_win.cpp
+ } else: macx {

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-10-31  8:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-31  8:19 [Buildroot] [git commit branch/2019.02.x] package/qt5/qt5base: fix icu detection in Qt 5.6.3 Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.