diff options
| author | Chenxi Mao <parheliamm@126.com> | 2020-04-10 08:46:18 +0800 |
|---|---|---|
| committer | Martin 'JaMa' Jansa <Martin.Jansa@gmail.com> | 2021-01-30 15:20:56 +0100 |
| commit | 37b95445756b4adafe39a2d2eebdfa7ad76ea308 (patch) | |
| tree | 789d68294ac1f23054f5062a41b05474ae257cf4 | |
| parent | 0f0154f4fac22fbb35d3d41ad8a5dc60157860b9 (diff) | |
| download | meta-qt5-37b95445756b4adafe39a2d2eebdfa7ad76ea308.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.patch | 83 | ||||
| -rw-r--r-- | recipes-qt/qt5/qtwebkit_git.bb | 5 |
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 @@ | |||
| 1 | From b5a58d2c001689b07591fdce8820773d57a74002 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Chenxi Mao <chenxi.mao2013@gmail.com> | ||
| 3 | Date: Fri, 3 Apr 2020 08:33:10 +0800 | ||
| 4 | Subject: [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 | |||
| 13 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
| 14 | index 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 () | ||
| 26 | diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt | ||
| 27 | index 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) | ||
| 38 | diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h | ||
| 39 | index 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 | ||
| 68 | diff --git a/Source/WTF/wtf/dtoa/utils.h b/Source/WTF/wtf/dtoa/utils.h | ||
| 69 | index 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 | -- | ||
| 82 | 2.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 | ||
| 25 | inherit cmake_qt5 perlnative | 26 | inherit cmake_qt5 perlnative |
| @@ -57,9 +58,11 @@ EXTRA_OECMAKE += " \ | |||
| 57 | 58 | ||
| 58 | EXTRA_OECMAKE_append_toolchain-clang = " -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}'" | 59 | EXTRA_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 |
| 61 | EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " | 62 | EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " |
| 62 | EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " | 63 | EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " |
| 64 | EXTRA_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 |
