From 6bf9af37ea8d8062029705de07bc35720b7525dc Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Sat, 2 Jun 2018 14:47:57 +0200 Subject: [PATCH] Add support for RISC-V (riscv64) Signed-off-by: David Abdurachmanov --- qtwebkit.spec | 11 +++++- webkit-qtwebkit-23-riscv64.patch | 64 ++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 webkit-qtwebkit-23-riscv64.patch diff --git a/qtwebkit.spec b/qtwebkit.spec index 712d848..e80b0fb 100644 --- a/qtwebkit.spec +++ b/qtwebkit.spec @@ -5,7 +5,7 @@ Name: qtwebkit Summary: Qt WebKit bindings Version: 2.3.4 -Release: 21%{?dist} +Release: 21.0.riscv64%{?dist} License: LGPLv2 with exceptions or GPLv3 with exceptions URL: http://trac.webkit.org/wiki/QtWebKit @@ -50,6 +50,9 @@ Patch11: qtwebkit-23-LLInt-C-Loop-backend-ppc.patch # truly madly deeply no rpath please, kthxbye Patch14: webkit-qtwebkit-23-no_rpath.patch +# add RISC-V (riscv64) support +Patch15: webkit-qtwebkit-23-riscv64.patch + ## upstream patches # backport from qt5-qtwebkit # qtwebkit: undefined symbol: g_type_class_adjust_private_offset @@ -135,6 +138,7 @@ Provides: qt4-webkit-devel%{?_isa} = 2:%{version}-%{release} %patch11 -p1 -b .Double2Ints %endif %patch14 -p1 -b .no_rpath +%patch15 -p1 -b .riscv64 %patch100 -p1 -b .gcc5 %patch101 -p1 -b .private_browsing @@ -151,7 +155,7 @@ PATH=`pwd`/bin:%{_qt4_bindir}:$PATH; export PATH QMAKEPATH=`pwd`/Tools/qmake; export QMAKEPATH QTDIR=%{_qt4_prefix}; export QTDIR -%ifarch aarch64 %{mips} +%ifarch aarch64 %{mips} riscv64 %global qtdefines DEFINES+=ENABLE_JIT=0 DEFINES+=ENABLE_YARR_JIT=0 DEFINES+=ENABLE_ASSEMBLER=0 %endif @@ -223,6 +227,9 @@ popd %changelog +* Sat Jun 02 2018 David Abdurachmanov - 2.3.4-21.0.riscv64 +- Add support for RISC-V (riscv64) + * Sun Mar 18 2018 Iryna Shcherbina - 2.3.4-21 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) diff --git a/webkit-qtwebkit-23-riscv64.patch b/webkit-qtwebkit-23-riscv64.patch new file mode 100644 index 0000000..0efbf8d --- /dev/null +++ b/webkit-qtwebkit-23-riscv64.patch @@ -0,0 +1,64 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a91f2559..94cb34fd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -76,6 +76,8 @@ ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)") + SET(WTF_CPU_X86_64 1) + ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)") + SET(WTF_CPU_X86 1) ++ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64") ++ SET(WTF_CPU_RISCV64 1) + ELSE () + MESSAGE(FATAL_ERROR "Unknown CPU '${CMAKE_SYSTEM_PROCESSOR}'") + ENDIF () +diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt +index 0a7a8bd3..14fbcdbf 100644 +--- a/Source/JavaScriptCore/CMakeLists.txt ++++ b/Source/JavaScriptCore/CMakeLists.txt +@@ -471,6 +471,7 @@ IF (WTF_CPU_ARM) + ELSEIF (WTF_CPU_MIPS) + ELSEIF (WTF_CPU_X86) + ELSEIF (WTF_CPU_X86_64) ++ELSEIF (WTF_CPU_RISCV64) + ELSE () + MESSAGE(FATAL_ERROR "Unknown CPU") + ENDIF () +diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h +index 56c6f256..cdcc94c6 100644 +--- a/Source/WTF/wtf/Platform.h ++++ b/Source/WTF/wtf/Platform.h +@@ -164,6 +164,11 @@ + #define WTF_CPU_BIG_ENDIAN 1 + #endif + ++/* CPU(RISCV64) - RISCV64 */ ++#if defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64 ++#define WTF_CPU_RISCV64 1 ++#endif ++ + /* CPU(X86) - i386 / x86 32-bit */ + #if defined(__i386__) \ + || defined(i386) \ +@@ -932,7 +937,8 @@ + && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(MIPS)) \ + && (OS(DARWIN) || !COMPILER(GCC) || GCC_VERSION_AT_LEAST(4, 1, 0)) \ + && !OS(WINCE) \ +- && !OS(QNX) ++ && !OS(QNX) \ ++ && !CPU(RISCV64) + #define ENABLE_JIT 1 + #endif + +diff --git a/Source/WTF/wtf/dtoa/utils.h b/Source/WTF/wtf/dtoa/utils.h +index bc17f043..91493297 100644 +--- a/Source/WTF/wtf/dtoa/utils.h ++++ b/Source/WTF/wtf/dtoa/utils.h +@@ -49,7 +49,7 @@ + defined(__ARMEL__) || \ + defined(_MIPS_ARCH_MIPS32R2) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 +-#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(MIPS64) || CPU(AARCH64) || CPU(HPPA) ++#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(MIPS64) || CPU(AARCH64) || CPU(HPPA) || CPU(RISCV64) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) + #if defined(_WIN32)