summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-02-02 23:25:58 -0800
committerMartin Jansa <Martin.Jansa@gmail.com>2019-02-14 17:40:27 +0000
commit5be2654885b3699520c4370579c929e2ce352e80 (patch)
tree3ae5a3bdf308a61dab72c2525a47a948f843d886
parentcb1b47212659a21514553cb0a0102861a6e2299b (diff)
downloadmeta-qt5-5be2654885b3699520c4370579c929e2ce352e80.tar.gz
qtwebengine: Fix build with clang/libc++ on aarch64/arm
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch16
-rw-r--r--recipes-qt/qt5/qtwebengine/0003-Revert-use-new-feature-name-xkbcommon_evdev-xkbcommo.patch31
-rw-r--r--recipes-qt/qt5/qtwebengine/chromium/0019-chromium-fix-build-with-clang.patch94
-rw-r--r--recipes-qt/qt5/qtwebengine/chromium/0020-chromium-Check-for-__ARM_FP-2-before-using-__fp16.patch33
-rw-r--r--recipes-qt/qt5/qtwebengine/chromium/0021-chromium-Exclude-CRC32-for-32bit-arm.patch31
-rw-r--r--recipes-qt/qt5/qtwebengine_git.bb4
6 files changed, 199 insertions, 10 deletions
diff --git a/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch b/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch
index b51c4c72..c9266582 100644
--- a/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch
+++ b/recipes-qt/qt5/qtwebengine/0001-Force-host-toolchain-configuration.patch
@@ -17,8 +17,6 @@ Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
17 src/core/config/linux.pri | 2 +- 17 src/core/config/linux.pri | 2 +-
18 2 files changed, 8 insertions(+), 8 deletions(-) 18 2 files changed, 8 insertions(+), 8 deletions(-)
19 19
20diff --git a/src/buildtools/configure_host.pro b/src/buildtools/configure_host.pro
21index dd0d3e32..70161c82 100644
22--- a/src/buildtools/configure_host.pro 20--- a/src/buildtools/configure_host.pro
23+++ b/src/buildtools/configure_host.pro 21+++ b/src/buildtools/configure_host.pro
24@@ -4,7 +4,7 @@ TEMPLATE = aux 22@@ -4,7 +4,7 @@ TEMPLATE = aux
@@ -37,9 +35,9 @@ index dd0d3e32..70161c82 100644
37-" cc = \"$$which($$QMAKE_CC)\" " \ 35-" cc = \"$$which($$QMAKE_CC)\" " \
38-" cxx = \"$$which($$QMAKE_CXX)\" " \ 36-" cxx = \"$$which($$QMAKE_CXX)\" " \
39-" ld = \"$$which($$QMAKE_LINK)\" " \ 37-" ld = \"$$which($$QMAKE_LINK)\" " \
40+" cc = \"$$which(gcc)\" " \ 38+" cc = \"$$which($$CC_host)\" " \
41+" cxx = \"$$which(g++)\" " \ 39+" cxx = \"$$which($$CXX_host)\" " \
42+" ld = \"$$which(g++)\" " \ 40+" ld = \"$$which($$CXX_host)\" " \
43 " ar = \"$$which(ar)\" " \ 41 " ar = \"$$which(ar)\" " \
44 " nm = \"$$which(nm)\" " \ 42 " nm = \"$$which(nm)\" " \
45 " extra_cppflags = \"$$GN_HOST_EXTRA_CPPFLAGS\" " \ 43 " extra_cppflags = \"$$GN_HOST_EXTRA_CPPFLAGS\" " \
@@ -50,14 +48,12 @@ index dd0d3e32..70161c82 100644
50-" cc = \"$$which($$QMAKE_CC)\" " \ 48-" cc = \"$$which($$QMAKE_CC)\" " \
51-" cxx = \"$$which($$QMAKE_CXX)\" " \ 49-" cxx = \"$$which($$QMAKE_CXX)\" " \
52-" ld = \"$$which($$QMAKE_LINK)\" " \ 50-" ld = \"$$which($$QMAKE_LINK)\" " \
53+" cc = \"$$which(gcc)\" " \ 51+" cc = \"$$which($$CC_host)\" " \
54+" cxx = \"$$which(g++)\" " \ 52+" cxx = \"$$which($$CXX_host)\" " \
55+" ld = \"$$which(g++)\" " \ 53+" ld = \"$$which($$CXX_host)\" " \
56 " ar = \"$$which(ar)\" " \ 54 " ar = \"$$which(ar)\" " \
57 " nm = \"$$which(nm)\" " \ 55 " nm = \"$$which(nm)\" " \
58 " toolchain_args = { " \ 56 " toolchain_args = { " \
59diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
60index 85b948db..c529c641 100644
61--- a/src/core/config/linux.pri 57--- a/src/core/config/linux.pri
62+++ b/src/core/config/linux.pri 58+++ b/src/core/config/linux.pri
63@@ -112,7 +112,7 @@ contains(QT_ARCH, "mips") { 59@@ -112,7 +112,7 @@ contains(QT_ARCH, "mips") {
diff --git a/recipes-qt/qt5/qtwebengine/0003-Revert-use-new-feature-name-xkbcommon_evdev-xkbcommo.patch b/recipes-qt/qt5/qtwebengine/0003-Revert-use-new-feature-name-xkbcommon_evdev-xkbcommo.patch
new file mode 100644
index 00000000..97f82847
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/0003-Revert-use-new-feature-name-xkbcommon_evdev-xkbcommo.patch
@@ -0,0 +1,31 @@
1From 7d8231d53a5e79eaea9fe2566f407faf41b233b4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 2 Feb 2019 23:23:14 -0800
4Subject: [PATCH] Revert "use new feature name xkbcommon_evdev -> xkbcommon"
5
6This reverts commit 21112a89e3d742451d6b449fc7075d51266fe709.
7
8To be compatible with qtbase 5.12.0, remove this patch when upgrading
9qtbase to 5.12.1
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 src/core/web_event_factory.cpp | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/src/core/web_event_factory.cpp b/src/core/web_event_factory.cpp
17index 06dbd7ff..a45f7048 100644
18--- a/src/core/web_event_factory.cpp
19+++ b/src/core/web_event_factory.cpp
20@@ -101,7 +101,7 @@ static KeyboardDriver keyboardDriverImpl()
21 if (platformName == QLatin1Literal("xcb") || platformName == QLatin1Literal("wayland"))
22 return KeyboardDriver::Xkb;
23
24-#if QT_CONFIG(libinput) && QT_CONFIG(xkbcommon)
25+#if QT_CONFIG(libinput) && QT_CONFIG(xkbcommon_evdev)
26 // Based on QEglFSIntegration::createInputHandlers and QLibInputKeyboard::processKey.
27 if (platformName == QLatin1Literal("eglfs") && !qEnvironmentVariableIntValue("QT_QPA_EGLFS_NO_LIBINPUT"))
28 return KeyboardDriver::Xkb;
29--
302.20.1
31
diff --git a/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-fix-build-with-clang.patch b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-fix-build-with-clang.patch
new file mode 100644
index 00000000..050fb064
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-fix-build-with-clang.patch
@@ -0,0 +1,94 @@
1From 4ed2bab8183cf8252b52a493665ddf84188f12f6 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 2 Feb 2019 19:28:59 -0800
4Subject: [PATCH] chromium: fix build with clang
5
6Upstream-Status: Pending
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8---
9 chromium/build/config/compiler/BUILD.gn | 27 ++-----------------------
10 1 file changed, 2 insertions(+), 25 deletions(-)
11
12diff --git a/chromium/build/config/compiler/BUILD.gn b/chromium/build/config/compiler/BUILD.gn
13index d223a4f6fd..1c42c49ea4 100644
14--- a/chromium/build/config/compiler/BUILD.gn
15+++ b/chromium/build/config/compiler/BUILD.gn
16@@ -544,13 +544,6 @@ config("compiler") {
17 ]
18 }
19
20- # Tells the compiler not to use absolute paths when passing the default
21- # paths to the tools it invokes. We don't want this because we don't
22- # really need it and it can mess up the goma cache entries.
23- if (is_clang && !is_nacl) {
24- cflags += [ "-no-canonical-prefixes" ]
25- }
26-
27 # C11/C++11 compiler flags setup.
28 # ---------------------------
29 if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
30@@ -748,8 +741,6 @@ config("compiler_cpu_abi") {
31 }
32 } else if (current_cpu == "arm") {
33 if (is_clang && !is_android && !is_nacl) {
34- cflags += [ "--target=arm-linux-gnueabihf" ]
35- ldflags += [ "--target=arm-linux-gnueabihf" ]
36 }
37 if (!is_nacl) {
38 cflags += [
39@@ -762,8 +753,6 @@ config("compiler_cpu_abi") {
40 }
41 } else if (current_cpu == "arm64") {
42 if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
43- cflags += [ "--target=aarch64-linux-gnu" ]
44- ldflags += [ "--target=aarch64-linux-gnu" ]
45 }
46 } else if (current_cpu == "mipsel" && !is_nacl) {
47 ldflags += [ "-Wl,--hash-style=sysv" ]
48@@ -772,9 +761,6 @@ config("compiler_cpu_abi") {
49 if (is_android) {
50 cflags += [ "--target=mipsel-linux-android" ]
51 ldflags += [ "--target=mipsel-linux-android" ]
52- } else {
53- cflags += [ "--target=mipsel-linux-gnu" ]
54- ldflags += [ "--target=mipsel-linux-gnu" ]
55 }
56 } else {
57 cflags += [ "-EL" ]
58@@ -853,10 +839,7 @@ config("compiler_cpu_abi") {
59 } else if (current_cpu == "mips" && !is_nacl) {
60 ldflags += [ "-Wl,--hash-style=sysv" ]
61 if (custom_toolchain == "") {
62- if (is_clang) {
63- cflags += [ "--target=mips-linux-gnu" ]
64- ldflags += [ "--target=mips-linux-gnu" ]
65- } else {
66+ if (!is_clang) {
67 cflags += [ "-EB" ]
68 ldflags += [ "-EB" ]
69 }
70@@ -902,9 +885,6 @@ config("compiler_cpu_abi") {
71 if (is_android) {
72 cflags += [ "--target=mips64el-linux-android" ]
73 ldflags += [ "--target=mips64el-linux-android" ]
74- } else {
75- cflags += [ "--target=mips64el-linux-gnuabi64" ]
76- ldflags += [ "--target=mips64el-linux-gnuabi64" ]
77 }
78 } else {
79 cflags += [
80@@ -961,10 +941,7 @@ config("compiler_cpu_abi") {
81 } else if (current_cpu == "mips64") {
82 ldflags += [ "-Wl,--hash-style=sysv" ]
83 if (custom_toolchain == "") {
84- if (is_clang) {
85- cflags += [ "--target=mips64-linux-gnuabi64" ]
86- ldflags += [ "--target=mips64-linux-gnuabi64" ]
87- } else {
88+ if (!is_clang) {
89 cflags += [
90 "-EB",
91 "-mabi=64",
92--
932.20.1
94
diff --git a/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-Check-for-__ARM_FP-2-before-using-__fp16.patch b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-Check-for-__ARM_FP-2-before-using-__fp16.patch
new file mode 100644
index 00000000..ef00025c
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-Check-for-__ARM_FP-2-before-using-__fp16.patch
@@ -0,0 +1,33 @@
1From f304341d4e0a24469575129e2f2a79a969d8ecaf Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 2 Feb 2019 22:09:20 -0800
4Subject: [PATCH 1/2] chromium: Check for __ARM_FP & 2 before using __fp16
5
6The __fp16 type denotes half-precision (16-bit) floating-point.
7The recommended way to test for this hardware support is to test bit 1 in __ARM_FP
8and
9If 16-bit floating-point is available, one of __ARM_FP16_FORMAT_IEEE and
10__ARM_FP16_FORMAT_ALTERNATIVE will be defined to indicate the format in use
11
12Upstream-Status: Pending
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
19index 33d9e7aa39..aaefa5371a 100644
20--- a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
21+++ b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
22@@ -679,7 +679,7 @@ SI F from_half(U16 h) {
23 }
24
25 SI U16 to_half(F f) {
26-#if defined(__ARM_FP16_FORMAT_IEEE)
27+#if defined(__ARM_FP16_FORMAT_IEEE) && defined(__ARM_NEON__) && (__ARM_FP & 2)
28 __fp16 fp16 = __fp16(f);
29 U16 u16;
30 memcpy(&u16, &fp16, sizeof(U16));
31--
322.20.1
33
diff --git a/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-Exclude-CRC32-for-32bit-arm.patch b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-Exclude-CRC32-for-32bit-arm.patch
new file mode 100644
index 00000000..e0c0dbb6
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-Exclude-CRC32-for-32bit-arm.patch
@@ -0,0 +1,31 @@
1From 432514e835f5bfefc2bb88adbb2ba468e9c07beb Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 5 Feb 2019 14:32:20 -0800
4Subject: [PATCH] chromium: Exclude CRC32 for 32bit arm
5
6This fixes build issues during cross compiling for linux using clang
7
8Fixes
9src/3rdparty/chromium/third_party/zlib/crc32_simd.c:184: undefined reference to `__crc32d'
10
11Upstream-Status: Pending
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 chromium/third_party/zlib/BUILD.gn | 4 ++--
15 1 file changed, 2 insertions(+), 2 deletions(-)
16
17--- a/chromium/third_party/zlib/BUILD.gn
18+++ b/chromium/third_party/zlib/BUILD.gn
19@@ -70,8 +70,11 @@ config("zlib_arm_crc32_config") {
20 # - ChromeOS has wrapper scripts that are borking the compiler flags.
21 # - Fuchsia just added a syscall for feature detection.
22 # TODO(cavalcantii): crbug.com/810125.
23+ defines = []
24 if (!is_ios && !is_chromeos && !is_fuchsia) {
25- defines = [ "CRC32_ARMV8_CRC32" ]
26+ if (current_cpu == "arm64") {
27+ defines += [ "CRC32_ARMV8_CRC32" ]
28+ }
29 if (is_android) {
30 defines += [ "ARMV8_OS_ANDROID" ]
31 } else if (is_linux || is_chromeos) {
diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb
index b64965de..bcddf889 100644
--- a/recipes-qt/qt5/qtwebengine_git.bb
+++ b/recipes-qt/qt5/qtwebengine_git.bb
@@ -140,6 +140,7 @@ SRC_URI += " \
140 ${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \ 140 ${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \
141 file://0001-Force-host-toolchain-configuration.patch \ 141 file://0001-Force-host-toolchain-configuration.patch \
142 file://0002-chromium_overrides.cpp-Fix-build-with-plugins-and-oz.patch \ 142 file://0002-chromium_overrides.cpp-Fix-build-with-plugins-and-oz.patch \
143 file://0003-Revert-use-new-feature-name-xkbcommon_evdev-xkbcommo.patch \
143" 144"
144SRC_URI_append_libc-musl = "\ 145SRC_URI_append_libc-musl = "\
145 file://0003-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch \ 146 file://0003-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch \
@@ -153,6 +154,9 @@ SRC_URI += " \
153 file://chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \ 154 file://chromium/0002-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \
154 file://chromium/0003-chromium-Fix-build-with-gcc8.patch;patchdir=src/3rdparty \ 155 file://chromium/0003-chromium-Fix-build-with-gcc8.patch;patchdir=src/3rdparty \
155 file://chromium/0004-chromium-stack-pointer-clobber.patch;patchdir=src/3rdparty \ 156 file://chromium/0004-chromium-stack-pointer-clobber.patch;patchdir=src/3rdparty \
157 file://chromium/0019-chromium-fix-build-with-clang.patch;patchdir=src/3rdparty \
158 file://chromium/0020-chromium-Check-for-__ARM_FP-2-before-using-__fp16.patch;patchdir=src/3rdparty \
159 file://chromium/0021-chromium-Exclude-CRC32-for-32bit-arm.patch;patchdir=src/3rdparty \
156" 160"
157 161
158SRC_URI_append_libc-musl = "\ 162SRC_URI_append_libc-musl = "\