Compare commits

..

23 Commits

Author SHA1 Message Date
0ec8b2c9ad
Add support for riscv64
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2022-11-14 09:59:23 +02:00
Fedora Release Engineering
0f5655bdd5 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 00:18:09 +00:00
Fedora Release Engineering
031e46cd9a - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-21 17:19:20 +00:00
Than Ngo
d87a0c5424 Fixed FTBFS with glib2 2021-09-16 11:24:40 +02:00
Fedora Release Engineering
753f652a21 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 10:59:09 +00:00
Fedora Release Engineering
ac5fd22b03 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 14:52:21 +00:00
Tom Stellard
d6bfeee81f Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-08 20:26:40 +00:00
Than Ngo
0ffa48d7bc fix FTBFS with bison-3.7 2020-08-31 22:04:10 +02:00
Than Ngo
3c4f7b129c Disable LTO 2020-08-31 15:36:49 +02:00
Than Ngo
f819e6434b Fixed FTBFS 2020-08-31 15:21:02 +02:00
Fedora Release Engineering
72c9c199e0 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-08-01 07:39:42 +00:00
Fedora Release Engineering
cc472f1c3b - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 05:18:46 +00:00
Fedora Release Engineering
a5f50d1bae - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 17:05:00 +00:00
Kevin Kofler
10197d68e9 Drop the extra no-sse2 build on i686, Fedora has required SSE2 since F29
* Sun Aug 11 2019 Kevin Kofler <Kevin@tigcc.ticalc.org> - 2.3.4-28
- Remove obsolete comments about source tarball generation (an upstream release
  tarball has been used for years and there is and will be no better source)
- Drop the extra no-sse2 build on i686, Fedora has required SSE2 since F29
2019-08-11 12:08:59 +02:00
Kevin Kofler
0a2711afb2 Fix changelog.
I am not Fedora Release Engineering. ;-)
2019-08-11 04:00:52 +02:00
Kevin Kofler
38ecf8775a Set PATH in %build, not %prep (FTBFS #1736570). 2019-08-11 02:43:53 +02:00
Kevin Kofler
21a443aa7d Fix FTBFS due to unversioned python no longer being Python 2 (#1736570)
* Sun Aug 11 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-27
- Fix FTBFS due to unversioned python no longer being Python 2 (#1736570)
2019-08-11 02:36:34 +02:00
Fedora Release Engineering
fc91246cc0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 17:57:46 +00:00
Fedora Release Engineering
d9ac54fc94 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-02 10:51:21 +00:00
Igor Gnatenko
2a6636f8e9
Remove obsolete ldconfig scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-22 18:40:48 +01:00
Rex Dieter
0db2d0d80f QtWebkit bundles malformed PNG files (#1639422) 2018-11-24 21:50:08 -06:00
Rex Dieter
f922c0e224 BR: %_bindir/python gcc-c++ (#1606056) 2018-07-21 09:43:38 -05:00
Fedora Release Engineering
52dd168f53 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 03:14:11 +00:00
4 changed files with 245 additions and 48 deletions

43
qtwebkit-bison-3.7.patch Normal file
View File

@ -0,0 +1,43 @@
diff -up webkit-qtwebkit-23/Source/WebCore/WebCore.gyp/scripts/rule_bison.py.bison37 webkit-qtwebkit-23/Source/WebCore/WebCore.gyp/scripts/rule_bison.py
diff -up webkit-qtwebkit-23/Source/WebCore/css/makegrammar.pl.bison37 webkit-qtwebkit-23/Source/WebCore/css/makegrammar.pl
--- webkit-qtwebkit-23/Source/WebCore/css/makegrammar.pl.bison37 2014-09-24 13:42:05.000000000 +0200
+++ webkit-qtwebkit-23/Source/WebCore/css/makegrammar.pl 2020-08-31 20:06:27.333379631 +0200
@@ -73,23 +73,6 @@ if ($suffix eq ".y.in") {
}
my $fileBase = File::Spec->join($outputDir, $filename);
-system("$bison -d -p $symbolsPrefix $grammarFilePath -o $fileBase.cpp");
-
-open HEADER, ">$fileBase.h" or die;
-print HEADER << "EOF";
-#ifndef CSSGRAMMAR_H
-#define CSSGRAMMAR_H
-EOF
-
-open HPP, "<$fileBase.cpp.h" or open HPP, "<$fileBase.hpp" or die;
-while (<HPP>) {
- print HEADER;
-}
-close HPP;
-
-print HEADER "#endif\n";
-close HEADER;
-
-unlink("$fileBase.cpp.h");
-unlink("$fileBase.hpp");
-
+my @bisonCommand = ($bison, "--defines=$fileBase.h", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp");
+push @bisonCommand, "--no-lines" if $^O eq "MSWin32"; # Work around bug in bison >= 3.0 on Windows where it puts backslashes into #line directives.
+system(@bisonCommand) == 0 or die;
diff -up webkit-qtwebkit-23/Source/WebCore/DerivedSources.pri.me webkit-qtwebkit-23/Source/WebCore/DerivedSources.pri
--- webkit-qtwebkit-23/Source/WebCore/DerivedSources.pri.me 2020-08-31 21:01:11.524849986 +0200
+++ webkit-qtwebkit-23/Source/WebCore/DerivedSources.pri 2020-08-31 21:03:55.555919630 +0200
@@ -957,7 +957,7 @@ GENERATORS += stylesheets
# GENERATOR 10: XPATH grammar
xpathbison.output = ${QMAKE_FILE_BASE}.cpp
xpathbison.input = XPATHBISON
-xpathbison.commands = bison -d -p xpathyy ${QMAKE_FILE_NAME} -o ${QMAKE_FUNC_FILE_OUT_PATH}/${QMAKE_FILE_BASE}.tab.c && $(MOVE) ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.cpp && $(MOVE) ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.h ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.h
+xpathbison.commands = bison -d -p xpathyy ${QMAKE_FILE_NAME} -o ${QMAKE_FUNC_FILE_OUT_PATH}/${QMAKE_FILE_BASE}.tab.c && cp ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.cpp && cp ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.h ${QMAKE_FUNC_FILE_OUT_PATH}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.h
xpathbison.depends = ${QMAKE_FILE_NAME}
GENERATORS += xpathbison

View File

@ -1,3 +1,8 @@
# qtwebkit is known not to work properly with LTO at this point. Some of the issues
# are being worked on upstream and disabling LTO should be re-evaluated as
# we update this change. Until such time...
# Disable LTO
%global _lto_cflags %{nil}
%global _hardened_build 1 %global _hardened_build 1
@ -5,28 +10,10 @@ Name: qtwebkit
Summary: Qt WebKit bindings Summary: Qt WebKit bindings
Version: 2.3.4 Version: 2.3.4
Release: 21%{?dist} Release: 37.0.riscv64%{?dist}
License: LGPLv2 with exceptions or GPLv3 with exceptions License: LGPLv2 with exceptions or GPLv3 with exceptions
URL: http://trac.webkit.org/wiki/QtWebKit URL: http://trac.webkit.org/wiki/QtWebKit
## This was how qtwebkit-2.2 did it (no longer works for 2.3)
# get make-package.py:
# $ git clone git://qt.gitorious.org/qtwebkit/tools.git
# get Qt WebKit source code:
# $ git clone git://gitorious.org/+qtwebkit-developers/webkit/qtwebkit.git
# create a branch from a tag (e.g. qtwebkit-2.2.2):
# $ git checkout -b qtwebkit-2.2.2 qtwebkit-2.2.2
# generate the tarball (requires: bison flex gperf):
# $ make-package.py
# fix/repack the generated tarball:
# $ tar xzf qtwebkit-2.2.2-source.tar.gz
# $ mv qtwebkit-2.2.2-source/include qtwebkit-2.2.2-source/Source/
# $ tar cJf qtwebkit-2.2.2-source.tar.xz qtwebkit-2.2.2-source/
##
# download from
# https://gitorious.org/webkit/qtwebkit-23/archive-tarball/qtwebkit-%{version}
# repack as .xz
#Source0: qtwebkit-%{version}.tar.xz
Source0: http://download.kde.org/stable/qtwebkit-2.3/%{version}/src/qtwebkit-%{version}.tar.gz Source0: http://download.kde.org/stable/qtwebkit-2.3/%{version}/src/qtwebkit-%{version}.tar.gz
# qmake wrapper # qmake wrapper
Source1: qmake.sh Source1: qmake.sh
@ -50,6 +37,9 @@ Patch11: qtwebkit-23-LLInt-C-Loop-backend-ppc.patch
# truly madly deeply no rpath please, kthxbye # truly madly deeply no rpath please, kthxbye
Patch14: webkit-qtwebkit-23-no_rpath.patch Patch14: webkit-qtwebkit-23-no_rpath.patch
# add RISC-V (riscv64) support
Patch20: webkit-qtwebkit-23-riscv64.patch
## upstream patches ## upstream patches
# backport from qt5-qtwebkit # backport from qt5-qtwebkit
# qtwebkit: undefined symbol: g_type_class_adjust_private_offset # qtwebkit: undefined symbol: g_type_class_adjust_private_offset
@ -57,9 +47,15 @@ Patch14: webkit-qtwebkit-23-no_rpath.patch
Patch100: webkit-qtwebkit-23-gcc5.patch Patch100: webkit-qtwebkit-23-gcc5.patch
# backport from qt5-qtwebkit: URLs visited during private browsing show up in WebpageIcons.db # backport from qt5-qtwebkit: URLs visited during private browsing show up in WebpageIcons.db
Patch101: webkit-qtwebkit-23-private_browsing.patch Patch101: webkit-qtwebkit-23-private_browsing.patch
# fix FTBFS with bison-3.7
Patch102: qtwebkit-bison-3.7.patch
# fix FTBFS wtih glib ≥ 2.68
Patch103: webkit-qtwebkit-23-glib2.patch
BuildRequires: make
BuildRequires: bison BuildRequires: bison
BuildRequires: flex BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: gperf BuildRequires: gperf
BuildRequires: libicu-devel BuildRequires: libicu-devel
BuildRequires: libjpeg-devel BuildRequires: libjpeg-devel
@ -94,6 +90,11 @@ BuildRequires: ruby ruby(rubygems)
BuildRequires: pkgconfig(QtLocation) >= 1.2 BuildRequires: pkgconfig(QtLocation) >= 1.2
BuildRequires: pkgconfig(QtSensors) >= 1.2 BuildRequires: pkgconfig(QtSensors) >= 1.2
%endif %endif
# workaround bad embedded png files, https://bugzilla.redhat.com/1639422
BuildRequires: findutils
BuildRequires: pngcrush
BuildRequires: perl-File-Find perl-FindBin perl-lib perl-English
Obsoletes: qt-webkit < 1:4.9.0 Obsoletes: qt-webkit < 1:4.9.0
Provides: qt-webkit = 2:%{version}-%{release} Provides: qt-webkit = 2:%{version}-%{release}
Provides: qt4-webkit = 2:%{version}-%{release} Provides: qt4-webkit = 2:%{version}-%{release}
@ -135,26 +136,44 @@ Provides: qt4-webkit-devel%{?_isa} = 2:%{version}-%{release}
%patch11 -p1 -b .Double2Ints %patch11 -p1 -b .Double2Ints
%endif %endif
%patch14 -p1 -b .no_rpath %patch14 -p1 -b .no_rpath
%patch20 -p1 -b .riscv64
%patch100 -p1 -b .gcc5 %patch100 -p1 -b .gcc5
%patch101 -p1 -b .private_browsing %patch101 -p1 -b .private_browsing
%if 0%{?fedora} > 33 || 0%{?rhel} > 8
%patch102 -p1 -b .bison37
%endif
%if 0%{?fedora} > 34 || 0%{?rhel} > 8
%patch103 -p1 -b .glib2
%endif
install -m755 -D %{SOURCE1} bin/qmake install -m755 -D %{SOURCE1} bin/qmake
# find/fix pngs with "libpng warning: iCCP: known incorrect sRGB profile"
find -name \*.png | xargs -n3 pngcrush -ow -fix
%build %build
# add an unversioned python symlink to python2 to the PATH (FTBFS #1736570)
mkdir python2-unversioned-command
ln -s %{__python2} python2-unversioned-command/python
CFLAGS="%{optflags}"; export CFLAGS CFLAGS="%{optflags}"; export CFLAGS
CXXFLAGS="%{optflags}"; export CXXFLAGS CXXFLAGS="%{optflags}"; export CXXFLAGS
LDFLAGS="%{?__global_ldflags}"; export LDFLAGS LDFLAGS="%{?__global_ldflags}"; export LDFLAGS
PATH=`pwd`/bin:%{_qt4_bindir}:$PATH; export PATH PATH=`pwd`/python2-unversioned-command:`pwd`/bin:%{_qt4_bindir}:$PATH; export PATH
QMAKEPATH=`pwd`/Tools/qmake; export QMAKEPATH QMAKEPATH=`pwd`/Tools/qmake; export QMAKEPATH
QTDIR=%{_qt4_prefix}; export QTDIR 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 %global qtdefines DEFINES+=ENABLE_JIT=0 DEFINES+=ENABLE_YARR_JIT=0 DEFINES+=ENABLE_ASSEMBLER=0
%endif %endif
%ifarch riscv64
export CFLAGS="$CFLAGS -fpermissive"
export CXXFLAGS="$CXXFLAGS -fpermissive"
%endif
mkdir -p %{_target_platform} mkdir -p %{_target_platform}
pushd %{_target_platform} pushd %{_target_platform}
WEBKITOUTPUTDIR=`pwd`; export WEBKITOUTPUTDIR WEBKITOUTPUTDIR=`pwd`; export WEBKITOUTPUTDIR
@ -167,32 +186,10 @@ WEBKITOUTPUTDIR=`pwd`; export WEBKITOUTPUTDIR
--system-malloc --system-malloc
popd popd
%ifarch %{ix86}
# build safe(r) non-sse2-enabled version
mkdir -p %{_target_platform}-no_sse2
pushd %{_target_platform}-no_sse2
WEBKITOUTPUTDIR=`pwd`; export WEBKITOUTPUTDIR
../Tools/Scripts/build-webkit \
--qt \
--no-webkit2 \
--release \
--qmakearg="CONFIG+=production_build DEFINES+=HAVE_LIBWEBP=1" \
--makeargs="%{?_smp_mflags}" \
--system-malloc \
--no-force-sse2
popd
%endif
%install %install
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}/Release make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}/Release
%ifarch %{ix86}
mkdir -p %{buildroot}%{_qt4_libdir}/sse2/
mv %{buildroot}%{_qt4_libdir}/libQtWebKit.so.4* %{buildroot}%{_qt4_libdir}/sse2/
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-no_sse2/Release
%endif
## pkgconfig love ## pkgconfig love
# drop Libs.private, it contains buildroot references, and # drop Libs.private, it contains buildroot references, and
# we don't support static linking libQtWebKit anyway # we don't support static linking libQtWebKit anyway
@ -202,14 +199,10 @@ mv QtWebKit.pc.new QtWebKit.pc
popd popd
%post -p /sbin/ldconfig %ldconfig_scriptlets
%postun -p /sbin/ldconfig
%files %files
%{_qt4_libdir}/libQtWebKit.so.4* %{_qt4_libdir}/libQtWebKit.so.4*
%ifarch %{ix86}
%{_qt4_libdir}/sse2/libQtWebKit.so.4*
%endif
%if 0%{?_qt4_importdir:1} %if 0%{?_qt4_importdir:1}
%{_qt4_importdir}/QtWebKit/ %{_qt4_importdir}/QtWebKit/
%endif %endif
@ -223,6 +216,60 @@ popd
%changelog %changelog
* Mon Oct 14 2022 David Abdurachmanov <davidlt@rivosinc.com> - 2.3.4-37.0.riscv64
- Add support for riscv64
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-37
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-36
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Sep 16 2021 Than Ngo <than@redhat.com> - 2.3.4-35
- Fixed FTBFS with glib2
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-34
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-33
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Aug 31 2020 Than Ngo <than@redhat.com> - 2.3.4-32
- Fixed FTBFS
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-31
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sun Aug 11 2019 Kevin Kofler <Kevin@tigcc.ticalc.org> - 2.3.4-28
- Remove obsolete comments about source tarball generation (an upstream release
tarball has been used for years and there is and will be no better source)
- Drop the extra no-sse2 build on i686, Fedora has required SSE2 since F29
* Sun Aug 11 2019 Kevin Kofler <Kevin@tigcc.ticalc.org> - 2.3.4-27
- Fix FTBFS due to unversioned python no longer being Python 2 (#1736570)
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Nov 24 2018 Rex Dieter <rdieter@fedoraproject.org> - 2.3.4-24
- QtWebkit bundles malformed PNG files (#1639422)
* Sat Jul 21 2018 Rex Dieter <rdieter@fedoraproject.org> - 2.3.4-23
- BR: %%_bindir/python gcc-c++ (#1606056)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sun Mar 18 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2.3.4-21 * Sun Mar 18 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2.3.4-21
- Update Python 2 dependency declarations to new packaging standards - Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)

View File

@ -0,0 +1,14 @@
diff -up webkit-qtwebkit-23/Source/WTF/wtf/gobject/GRefPtr.h.me webkit-qtwebkit-23/Source/WTF/wtf/gobject/GRefPtr.h
--- webkit-qtwebkit-23/Source/WTF/wtf/gobject/GRefPtr.h.me 2021-09-16 10:00:33.214875944 +0200
+++ webkit-qtwebkit-23/Source/WTF/wtf/gobject/GRefPtr.h 2021-09-16 10:00:51.055293899 +0200
@@ -28,9 +28,7 @@
#include <wtf/AlwaysInline.h>
#include <wtf/RefPtr.h>
#include <algorithm>
-
-extern "C" void g_object_unref(gpointer);
-extern "C" gpointer g_object_ref_sink(gpointer);
+#include <glib.h>
namespace WTF {

View File

@ -0,0 +1,93 @@
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/JavaScriptCore/JavaScriptCore.pri b/Source/JavaScriptCore/JavaScriptCore.pri
index e5f4362c..f175d09e 100644
--- a/Source/JavaScriptCore/JavaScriptCore.pri
+++ b/Source/JavaScriptCore/JavaScriptCore.pri
@@ -37,6 +37,14 @@ macx: INCLUDEPATH += $$JAVASCRIPTCORE_GENERATED_SOURCES_DIR/$$activeBuildConfig(
win32-*: LIBS += -lwinmm
+# Hack around RISCV64 fail wrt JSValue.h
+# SValue.h unconditionally casts pointer to int32_t.
+# add -fpermissive locally as a workaround
+equals(QT_ARCH, riscv64) {
+ message("JavaScriptCore riscv64 hack: -fpermissive")
+ QMAKE_CXXFLAGS += -fpermissive
+}
+
wince* {
INCLUDEPATH += $$QT.core.sources/../3rdparty/ce-compat
INCLUDEPATH += $$SOURCE_DIR/os-win32
diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
index 56c6f256..639063bb 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) \
@@ -906,7 +911,8 @@
|| CPU(S390X) \
|| CPU(AARCH64) \
|| CPU(MIPS64) \
- || CPU(PPC64)
+ || CPU(PPC64) \
+ || CPU(RISCV64)
#define WTF_USE_JSVALUE64 1
#else
#define WTF_USE_JSVALUE32_64 1
@@ -932,7 +938,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)