diff options
| author | Khem Raj <raj.khem@gmail.com> | 2019-02-02 23:25:58 -0800 |
|---|---|---|
| committer | Martin Jansa <Martin.Jansa@gmail.com> | 2019-02-14 17:40:27 +0000 |
| commit | 5be2654885b3699520c4370579c929e2ce352e80 (patch) | |
| tree | 3ae5a3bdf308a61dab72c2525a47a948f843d886 | |
| parent | cb1b47212659a21514553cb0a0102861a6e2299b (diff) | |
| download | meta-qt5-5be2654885b3699520c4370579c929e2ce352e80.tar.gz | |
qtwebengine: Fix build with clang/libc++ on aarch64/arm
Signed-off-by: Khem Raj <raj.khem@gmail.com>
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 | ||
| 20 | diff --git a/src/buildtools/configure_host.pro b/src/buildtools/configure_host.pro | ||
| 21 | index 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 = { " \ |
| 59 | diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri | ||
| 60 | index 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 @@ | |||
| 1 | From 7d8231d53a5e79eaea9fe2566f407faf41b233b4 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Sat, 2 Feb 2019 23:23:14 -0800 | ||
| 4 | Subject: [PATCH] Revert "use new feature name xkbcommon_evdev -> xkbcommon" | ||
| 5 | |||
| 6 | This reverts commit 21112a89e3d742451d6b449fc7075d51266fe709. | ||
| 7 | |||
| 8 | To be compatible with qtbase 5.12.0, remove this patch when upgrading | ||
| 9 | qtbase to 5.12.1 | ||
| 10 | |||
| 11 | Signed-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 | |||
| 16 | diff --git a/src/core/web_event_factory.cpp b/src/core/web_event_factory.cpp | ||
| 17 | index 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 | -- | ||
| 30 | 2.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 @@ | |||
| 1 | From 4ed2bab8183cf8252b52a493665ddf84188f12f6 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Sat, 2 Feb 2019 19:28:59 -0800 | ||
| 4 | Subject: [PATCH] chromium: fix build with clang | ||
| 5 | |||
| 6 | Upstream-Status: Pending | ||
| 7 | Signed-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 | |||
| 12 | diff --git a/chromium/build/config/compiler/BUILD.gn b/chromium/build/config/compiler/BUILD.gn | ||
| 13 | index 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 | -- | ||
| 93 | 2.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 @@ | |||
| 1 | From f304341d4e0a24469575129e2f2a79a969d8ecaf Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Sat, 2 Feb 2019 22:09:20 -0800 | ||
| 4 | Subject: [PATCH 1/2] chromium: Check for __ARM_FP & 2 before using __fp16 | ||
| 5 | |||
| 6 | The __fp16 type denotes half-precision (16-bit) floating-point. | ||
| 7 | The recommended way to test for this hardware support is to test bit 1 in __ARM_FP | ||
| 8 | and | ||
| 9 | If 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 | |||
| 12 | Upstream-Status: Pending | ||
| 13 | Signed-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 | |||
| 18 | diff --git a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h | ||
| 19 | index 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 | -- | ||
| 32 | 2.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 @@ | |||
| 1 | From 432514e835f5bfefc2bb88adbb2ba468e9c07beb Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Tue, 5 Feb 2019 14:32:20 -0800 | ||
| 4 | Subject: [PATCH] chromium: Exclude CRC32 for 32bit arm | ||
| 5 | |||
| 6 | This fixes build issues during cross compiling for linux using clang | ||
| 7 | |||
| 8 | Fixes | ||
| 9 | src/3rdparty/chromium/third_party/zlib/crc32_simd.c:184: undefined reference to `__crc32d' | ||
| 10 | |||
| 11 | Upstream-Status: Pending | ||
| 12 | Signed-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 | " |
| 144 | SRC_URI_append_libc-musl = "\ | 145 | SRC_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 | ||
| 158 | SRC_URI_append_libc-musl = "\ | 162 | SRC_URI_append_libc-musl = "\ |
