summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChenxi Mao <parheliamm@126.com>2020-04-10 08:46:18 +0800
committerMartin Jansa <Martin.Jansa@gmail.com>2021-01-22 12:00:00 +0100
commitcad441b37681ec1c23ccf20e7cbeffdc9d7ba808 (patch)
tree789d68294ac1f23054f5062a41b05474ae257cf4
parent31c137e51ff98c58a381d3c6eacddda5c10f11e1 (diff)
downloadmeta-qt5-cad441b37681ec1c23ccf20e7cbeffdc9d7ba808.tar.gz
QTWebkit: Support RISC-V ISA on QTwebkit
There are 3 changes to support RISC-V 1. Add a patch to support RISC-V CPU 2. Disable JIT as mips/ppc did
-rw-r--r--recipes-qt/qt5/qtwebkit/0009-Riscv-Add-support-for-riscv.patch83
-rw-r--r--recipes-qt/qt5/qtwebkit_git.bb5
2 files changed, 87 insertions, 1 deletions
diff --git a/recipes-qt/qt5/qtwebkit/0009-Riscv-Add-support-for-riscv.patch b/recipes-qt/qt5/qtwebkit/0009-Riscv-Add-support-for-riscv.patch
new file mode 100644
index 00000000..2bfb72fe
--- /dev/null
+++ b/recipes-qt/qt5/qtwebkit/0009-Riscv-Add-support-for-riscv.patch
@@ -0,0 +1,83 @@
1From b5a58d2c001689b07591fdce8820773d57a74002 Mon Sep 17 00:00:00 2001
2From: Chenxi Mao <chenxi.mao2013@gmail.com>
3Date: Fri, 3 Apr 2020 08:33:10 +0800
4Subject: [PATCH 1/1] Riscv: Add support for riscv
5
6---
7 CMakeLists.txt | 2 ++
8 Source/JavaScriptCore/CMakeLists.txt | 1 +
9 Source/WTF/wtf/Platform.h | 12 ++++++++++--
10 Source/WTF/wtf/dtoa/utils.h | 2 +-
11 4 files changed, 14 insertions(+), 3 deletions(-)
12
13diff --git a/CMakeLists.txt b/CMakeLists.txt
14index 31a2ea1fd..516476729 100644
15--- a/CMakeLists.txt
16+++ b/CMakeLists.txt
17@@ -83,6 +83,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390")
18 set(WTF_CPU_S390 1)
19 elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390x")
20 set(WTF_CPU_S390X 1)
21+elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64")
22+ set(WTF_CPU_RISCV64 1)
23 else ()
24 message(FATAL_ERROR "Unknown CPU '${LOWERCASE_CMAKE_SYSTEM_PROCESSOR}'")
25 endif ()
26diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
27index 937b3ed00..2fff29f9d 100644
28--- a/Source/JavaScriptCore/CMakeLists.txt
29+++ b/Source/JavaScriptCore/CMakeLists.txt
30@@ -1286,6 +1286,7 @@ elseif (WTF_CPU_S390)
31 elseif (WTF_CPU_S390X)
32 elseif (WTF_CPU_MIPS)
33 elseif (WTF_CPU_SH4)
34+elseif (WTF_CPU_RISCV64)
35 elseif (WTF_CPU_X86)
36 elseif (WTF_CPU_X86_64)
37 if (MSVC AND ENABLE_JIT)
38diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
39index 5717f3ea1..8fac85f72 100644
40--- a/Source/WTF/wtf/Platform.h
41+++ b/Source/WTF/wtf/Platform.h
42@@ -349,7 +349,14 @@
43
44 #endif /* ARM */
45
46-#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(ALPHA) || CPU(HPPA)
47+#if defined(__riscv)
48+#define WTF_CPU_RISCV 1
49+#if __riscv_xlen == 64
50+#define WTF_CPU_RISCV64 1
51+#endif
52+#endif
53+
54+#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(ALPHA) || CPU(HPPA) || CPU(RISCV)
55 #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1
56 #endif
57
58@@ -707,7 +714,8 @@
59 || CPU(S390X) \
60 || CPU(MIPS64) \
61 || CPU(PPC64) \
62- || CPU(PPC64LE)
63+ || CPU(PPC64LE) \
64+ || CPU(RISCV64)
65 #define USE_JSVALUE64 1
66 #else
67 #define USE_JSVALUE32_64 1
68diff --git a/Source/WTF/wtf/dtoa/utils.h b/Source/WTF/wtf/dtoa/utils.h
69index 05302e6e6..25dd352ee 100644
70--- a/Source/WTF/wtf/dtoa/utils.h
71+++ b/Source/WTF/wtf/dtoa/utils.h
72@@ -49,7 +49,7 @@
73 defined(__ARMEL__) || \
74 defined(_MIPS_ARCH_MIPS32R2)
75 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
76-#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) || CPU(ARM)
77+#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) || CPU(ARM) || CPU(RISCV)
78 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
79 #elif defined(_M_IX86) || defined(__i386__)
80 #if defined(_WIN32)
81--
822.17.1
83
diff --git a/recipes-qt/qt5/qtwebkit_git.bb b/recipes-qt/qt5/qtwebkit_git.bb
index 6aa1ded8..9e3aa551 100644
--- a/recipes-qt/qt5/qtwebkit_git.bb
+++ b/recipes-qt/qt5/qtwebkit_git.bb
@@ -20,6 +20,7 @@ SRC_URI += "\
20 file://0006-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch \ 20 file://0006-Disable-code-related-to-HTTP-2-when-Qt-is-configured.patch \
21 file://0007-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch \ 21 file://0007-Fix-compilation-with-Python-3.9-avoid-passing-encodi.patch \
22 file://0008-Fix-build-with-icu-68.patch \ 22 file://0008-Fix-build-with-icu-68.patch \
23 file://0009-Riscv-Add-support-for-riscv.patch \
23" 24"
24 25
25inherit cmake_qt5 perlnative 26inherit cmake_qt5 perlnative
@@ -57,9 +58,11 @@ EXTRA_OECMAKE += " \
57 58
58EXTRA_OECMAKE_append_toolchain-clang = " -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}'" 59EXTRA_OECMAKE_append_toolchain-clang = " -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}'"
59 60
60# JIT not supported on MIPS/PPC 61# JIT not supported on MIPS/PPC/RISCV
61EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " 62EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
62EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " 63EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
64EXTRA_OECMAKE_append_riscv64 = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
65
63# Disable gold on mips64/clang 66# Disable gold on mips64/clang
64# mips64-yoe-linux-musl-ld.gold: internal error in get_got_page_offset, at ../../gold/mips.cc:6260 67# mips64-yoe-linux-musl-ld.gold: internal error in get_got_page_offset, at ../../gold/mips.cc:6260
65# mips-yoe-linux-musl-ld.gold: error: Can't find matching LO16 reloc 68# mips-yoe-linux-musl-ld.gold: error: Can't find matching LO16 reloc