Use Debian/ububtu patchset

This commit is contained in:
Mario Fetka
2025-09-18 11:05:51 +02:00
parent 1eae4a9cf5
commit 47b636e042
28 changed files with 642 additions and 211 deletions

View File

@@ -1,23 +1,16 @@
From d92b11fea65364fefa700249bd3340e0cd4c5b31 Mon Sep 17 00:00:00 2001
From: Dmitry Shachnev <mitya57@gmail.com>
Date: Tue, 4 Aug 2020 21:04:06 +0300
Subject: [PATCH] Let Bison generate the header directly, to fix build with
Bison 3.7
Description: let Bison generate the header directly
Starting with Bison 3.7, the generated C++ file #include's the header
by default, instead of duplicating it. So we should not delete it.
.
Remove the code to add #ifdef guards to the header, since Bison adds
them itself since version 2.6.3.
Author: Dmitry Shachnev <mitya57@debian.org>
Forwarded: https://github.com/qtwebkit/qtwebkit/pull/1012
Last-Update: 2020-08-04
Starting with Bison 3.7, the generated C++ file #include's the header
by default, instead of duplicating it. So we should not delete it.
Remove the code to add #ifdef guards to the header, since Bison adds
them itself since version 2.6.3.
---
Source/WebCore/css/makegrammar.pl | 21 +--------------------
1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/Source/WebCore/css/makegrammar.pl b/Source/WebCore/css/makegrammar.pl
index 5d63b08102eb..9435701c7061 100644
--- a/Source/WebCore/css/makegrammar.pl
+++ b/Source/WebCore/css/makegrammar.pl
@@ -73,25 +73,6 @@
@@ -73,25 +73,6 @@ if ($suffix eq ".y.in") {
}
my $fileBase = File::Spec->join($outputDir, $filename);

View File

@@ -0,0 +1,14 @@
Description: ANGLE: add missing include to fix build with GCC 13
Origin: upstream, https://chromium.googlesource.com/angle/angle/+/cdfa8f504d83c2a3
Last-Update: 2023-06-18
--- a/Source/ThirdParty/ANGLE/src/common/mathutil.h
+++ b/Source/ThirdParty/ANGLE/src/common/mathutil.h
@@ -15,6 +15,7 @@
#include <limits>
#include <algorithm>
#include <string.h>
+#include <stdint.h>
#include <stdlib.h>
namespace gl

View File

@@ -0,0 +1,18 @@
Description: fix build with GCC 14
Origin: Fedora, https://src.fedoraproject.org/rpms/qt5-qtwebkit/blob/rawhide/f/qtwebkit-fix-build-gcc14.patch
Forwarded: no
Last-Update: 2024-07-04
--- a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp
+++ b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp
@@ -231,8 +231,9 @@ bool isAllowedByAllWithHashFromContent(c
auto cryptoDigest = CryptoDigest::create(toCryptoDigestAlgorithm(algorithm));
cryptoDigest->addBytes(contentCString.data(), contentCString.length());
Vector<uint8_t> digest = cryptoDigest->computeHash();
+ ContentSecurityPolicyHash hash = std::make_pair(algorithm, digest);
for (auto& policy : policies) {
- if ((policy.get()->*allowed)(std::make_pair(algorithm, digest)))
+ if ((policy.get()->*allowed)(hash))
return true;
}
}

View File

@@ -0,0 +1,18 @@
Description: remove invalid g_object declarations to fix build with glib ≥ 2.68
Origin: https://build.opensuse.org/package/view_file/KDE:Qt5/libqt5-qtwebkit/0001-Remove-invalid-g_object-declarations-to-fix-build-wi.patch
Forwarded: https://github.com/qtwebkit/qtwebkit/pull/1058
Last-Update: 2021-04-07
--- a/Source/WTF/wtf/glib/GRefPtr.h
+++ b/Source/WTF/wtf/glib/GRefPtr.h
@@ -28,9 +28,7 @@
#include <wtf/GetPtr.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

@@ -1,6 +1,22 @@
Description: fix macro definitions TRUE, FALSE
Origin: Fedora, https://src.fedoraproject.org/rpms/qt5-qtwebkit/blob/rawhide/f/qtwebkit-icu68.patch
Forwarded: no
Last-Update: 2022-03-13
--- a/Source/WebCore/platform/text/TextCodecICU.cpp
+++ b/Source/WebCore/platform/text/TextCodecICU.cpp
@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter()
m_converterICU = ucnv_open(m_canonicalConverterName, &err);
ASSERT(U_SUCCESS(err));
if (m_converterICU)
- ucnv_setFallback(m_converterICU, TRUE);
+ ucnv_setFallback(m_converterICU, true);
}
int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)
--- a/Source/WebCore/platform/text/icu/UTextProvider.h
+++ b/Source/WebCore/platform/text/icu/UTextProvider.h
@@ -80,12 +80,12 @@
@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRan
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
@@ -15,7 +31,7 @@
return true;
}
} else {
@@ -94,12 +94,12 @@
@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRan
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
@@ -32,7 +48,7 @@
}
--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
@@ -100,23 +100,23 @@
@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uT
if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
@@ -60,7 +76,7 @@
}
}
@@ -144,7 +144,7 @@
@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uT
uText->nativeIndexingLimit = uText->chunkLength;
@@ -69,7 +85,7 @@
}
static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
@@ -336,7 +336,7 @@
@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNa
static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
@@ -78,7 +94,7 @@
int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -356,7 +356,7 @@
@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAcce
ASSERT(newContext == UTextProviderContext::PriorContext);
textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
@@ -89,7 +105,7 @@
static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
@@ -125,7 +125,7 @@
@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextA
static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
@@ -98,7 +114,7 @@
int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -145,7 +145,7 @@
@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAcces
ASSERT(newContext == UTextProviderContext::PriorContext);
textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
@@ -107,14 +123,3 @@
}
static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
--- a/Source/WebCore/platform/text/TextCodecICU.cpp
+++ b/Source/WebCore/platform/text/TextCodecICU.cpp
@@ -308,7 +308,7 @@
m_converterICU = ucnv_open(m_canonicalConverterName, &err);
ASSERT(U_SUCCESS(err));
if (m_converterICU)
- ucnv_setFallback(m_converterICU, TRUE);
+ ucnv_setFallback(m_converterICU, true);
}
int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)

View File

@@ -0,0 +1,22 @@
Description: partial backport of r260554 (79fe19caf)
In particular, we need -DU_SHOW_CPLUSPLUS_API=0 to avoid compilation
errors in C++ parts of ICU headers which we are not using anyway.
Origin: upstream, https://github.com/qtwebkit/qtwebkit/commit/756e1c8f23dc2720
Last-Update: 2024-05-28
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -1137,6 +1137,13 @@
#define ENABLE_PLATFORM_FONT_LOOKUP 1
#endif
+/* FIXME: This does not belong in Platform.h and should instead be included in another mechanism (compiler option, prefix header, config.h, etc) */
+/* ICU configuration. Some of these match ICU defaults on some platforms, but we would like them consistently set everywhere we build WebKit. */
+#define U_SHOW_CPLUSPLUS_API 0
+#ifdef __cplusplus
+#define UCHAR_TYPE char16_t
+#endif
+
#if COMPILER(MSVC)
#undef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS

View File

@@ -0,0 +1,16 @@
Description: also disable ICU C++ header-only APIs, introduced in ICU 76
They require C++17 which we do not have, but we do not need them anyway.
Author: Dmitry Shachnev <mitya57@debian.org>
Forwarded: https://github.com/qtwebkit/qtwebkit/pull/1107
Last-Update: 2025-01-09
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -1140,6 +1140,7 @@
/* FIXME: This does not belong in Platform.h and should instead be included in another mechanism (compiler option, prefix header, config.h, etc) */
/* ICU configuration. Some of these match ICU defaults on some platforms, but we would like them consistently set everywhere we build WebKit. */
#define U_SHOW_CPLUSPLUS_API 0
+#define U_SHOW_CPLUSPLUS_HEADER_API 0
#ifdef __cplusplus
#define UCHAR_TYPE char16_t
#endif

View File

@@ -0,0 +1,28 @@
Description: fix JSCore segmentation fault on 64-bit big endian systems
In CodeBlock.cpp the code preparing the operands of op_get_from_scope writes
the property offset as pointer size (hence 64 bit) value:
.
2141: instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
.
while the same slot is accessed later by the jitted code as 32 bit integer:
.
macro getProperty(slow)
loadisFromInstruction(6, t1)
.
This fails on big endian targets since the integer access takes the higher
part of the 64 bit value.
Origin: backport, https://github.com/webkit/webkit/commit/3fdde71c7d95d758
Reviewed-by: Frank Heimes <frank.heimes@canonical.com>
Last-Update: 2021-11-24
--- a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
@@ -2020,7 +2020,7 @@ macro loadWithStructureCheck(operand, sl
end
macro getProperty(slow)
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
loadPropertyAtVariableOffset(t1, t0, t2, slow)
valueProfile(t2, 7, t0)
loadisFromInstruction(1, t0)

View File

@@ -0,0 +1,32 @@
Description: fix build with libxml2 version 2.12.0
Origin: upstream, https://commits.webkit.org/270977@main
Last-Update: 2024-01-22
--- a/Source/WebCore/xml/XSLTProcessor.h
+++ b/Source/WebCore/xml/XSLTProcessor.h
@@ -64,7 +64,11 @@ public:
void reset();
+#if LIBXML_VERSION >= 21200
+ static void parseErrorFunc(void* userData, const xmlError*);
+#else
static void parseErrorFunc(void* userData, xmlError*);
+#endif
static void genericErrorFunc(void* userData, const char* msg, ...);
// Only for libXSLT callbacks
--- a/Source/WebCore/xml/XSLTProcessorLibxslt.cpp
+++ b/Source/WebCore/xml/XSLTProcessorLibxslt.cpp
@@ -78,7 +78,11 @@ void XSLTProcessor::genericErrorFunc(voi
// It would be nice to do something with this error message.
}
+#if LIBXML_VERSION >= 21200
+void XSLTProcessor::parseErrorFunc(void* userData, const xmlError* error)
+#else
void XSLTProcessor::parseErrorFunc(void* userData, xmlError* error)
+#endif
{
PageConsoleClient* console = static_cast<PageConsoleClient*>(userData);
if (!console)

View File

@@ -0,0 +1,59 @@
Description: add loongarch64 support
Author: Dandan Zhang <zhangdandan@loongson.cn>
Forwarded: https://github.com/qtwebkit/qtwebkit/pull/1096
Last-Update: 2024-03-09
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,6 +85,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR
set(WTF_CPU_S390X 1)
elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64")
set(WTF_CPU_RISCV64 1)
+elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^loongarch64")
+ set(WTF_CPU_LOONGARCH64 1)
else ()
message(FATAL_ERROR "Unknown CPU '${LOWERCASE_CMAKE_SYSTEM_PROCESSOR}'")
endif ()
--- a/Source/JavaScriptCore/CMakeLists.txt
+++ b/Source/JavaScriptCore/CMakeLists.txt
@@ -1280,6 +1280,7 @@ if (WTF_CPU_ARM)
elseif (WTF_CPU_ARM64)
elseif (WTF_CPU_ALPHA)
elseif (WTF_CPU_HPPA)
+elseif (WTF_CPU_LOONGARCH64)
elseif (WTF_CPU_PPC)
elseif (WTF_CPU_PPC64)
elseif (WTF_CPU_PPC64LE)
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -103,6 +103,11 @@
#define USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1
#endif /* MIPS */
+/* CPU(LOONGARCH64) - LoongArch 64-bit */
+#if defined(__loongarch64)
+#define WTF_CPU_LOONGARCH64 1
+#endif
+
/* CPU(PPC64) - PowerPC 64-bit Big Endian */
#if ( defined(__ppc64__) \
|| defined(__PPC64__)) \
@@ -711,6 +716,7 @@
|| CPU(ARM64) \
|| CPU(S390X) \
|| CPU(MIPS64) \
+ || CPU(LOONGARCH64) \
|| CPU(PPC64) \
|| CPU(PPC64LE) \
|| CPU(RISCV64)
--- 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(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) || CPU(RISCV64)
+#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(RISCV64) || CPU(LOONGARCH64)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__)
#if defined(_WIN32)

View File

@@ -0,0 +1,18 @@
Description: do not attempt rendering PDF with Qt image plugin
Qt 5.15 added Qt PDF module which comes with imageformat plugin, which
allows rendering first page of PDF document as image.
Origin: upstream, https://github.com/qtwebkit/qtwebkit/commit/0443d42b04e0f99c
Last-Update: 2020-09-13
--- a/Source/WebCore/platform/MIMETypeRegistry.cpp
+++ b/Source/WebCore/platform/MIMETypeRegistry.cpp
@@ -254,6 +254,9 @@ static void initializeSupportedImageMIME
// Do not treat SVG as images directly because WebKit can handle them.
supportedImageMIMETypes->remove("image/svg+xml");
supportedImageResourceMIMETypes->remove("image/svg+xml");
+ // Do not treat PDF as images
+ supportedImageMIMETypes->remove("application/pdf");
+ supportedImageResourceMIMETypes->remove("application/pdf");
#endif // PLATFORM(QT)
#endif // USE(CG)
}

View File

@@ -0,0 +1,28 @@
Description: fix offlineasm error with Ruby 3.2
Swap checks to prevent applying the =~ operator to Annotation instances,
which do not define it.
Origin: upstream, https://commits.webkit.org/219400@main
Last-Update: 2024-03-28
--- a/Source/JavaScriptCore/offlineasm/parser.rb
+++ b/Source/JavaScriptCore/offlineasm/parser.rb
@@ -584,9 +584,7 @@ class Parser
firstCodeOrigin = @tokens[@idx].codeOrigin
list = []
loop {
- if (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final)
- break
- elsif @tokens[@idx].is_a? Annotation
+ if @tokens[@idx].is_a? Annotation
# This is the only place where we can encounter a global
# annotation, and hence need to be able to distinguish between
# them.
@@ -600,6 +598,8 @@ class Parser
list << Instruction.new(codeOrigin, annotationOpcode, [], @tokens[@idx].string)
@annotation = nil
@idx += 2 # Consume the newline as well.
+ elsif (@idx == @tokens.length and not final) or (final and @tokens[@idx] =~ final)
+ break
elsif @tokens[@idx] == "\n"
# ignore
@idx += 1

View File

@@ -0,0 +1,21 @@
Author: Pino Toscano <pino@debian.org>
Description: Locally define PATH_MAX is not available
The code unconditionally uses PATH_MAX, which is POSIX-optional.
.
This fixes the build on platforms without it, such as GNU/Hurd.
Forwarded: no
Last-Update: 2017-11-20
--- a/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp
+++ b/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp
@@ -45,6 +45,10 @@
#include <wtf/glib/GUniquePtr.h>
#endif
+#if !defined(PATH_MAX)
+#define PATH_MAX 4096
+#endif
+
namespace WebCore {
static const char* const gDictionaryDirectories[] = {

View File

@@ -0,0 +1,15 @@
Description: fix compilation with Python 3.9: avoid passing encoding to json.load()
Origin: upstream, https://github.com/qtwebkit/qtwebkit/commit/78360c01c796b626
Last-Update: 2020-11-23
--- a/Source/JavaScriptCore/generate-bytecode-files
+++ b/Source/JavaScriptCore/generate-bytecode-files
@@ -163,7 +163,7 @@ if __name__ == "__main__":
initBytecodesFile = openOrExit(initASMFileName, "w")
try:
- bytecodeSections = json.load(bytecodeFile, encoding = "utf-8")
+ bytecodeSections = json.load(bytecodeFile)
except:
print("Unexpected error parsing {0}: {1}".format(bytecodeJSONFile, sys.exc_info()))

View File

@@ -1,28 +0,0 @@
https://github.com/qtwebkit/qtwebkit/pull/1058
From 5b698ba3faffd4e198a45be9fe74f53307395e4b Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
Date: Wed, 7 Apr 2021 13:38:09 +0200
Subject: [PATCH] Remove invalid g_object declarations to fix build with glib
>= 2.68
g_object_ref_sink is defined as a macro meanwhile and so the build fails.
Just remove the declarations, glib.h is included anyway.
---
Source/WTF/wtf/glib/GRefPtr.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/Source/WTF/wtf/glib/GRefPtr.h b/Source/WTF/wtf/glib/GRefPtr.h
index 06133d82cb35..d9a1d2f145f5 100644
--- a/Source/WTF/wtf/glib/GRefPtr.h
+++ b/Source/WTF/wtf/glib/GRefPtr.h
@@ -29,9 +29,6 @@
#include <algorithm>
#include <glib.h>
-extern "C" void g_object_unref(gpointer);
-extern "C" gpointer g_object_ref_sink(gpointer);
-
namespace WTF {
enum GRefPtrAdoptType { GRefPtrAdopt };

View File

@@ -1,27 +0,0 @@
From 78360c01c796b6260bf828bc9c8a0ef73c5132fd Mon Sep 17 00:00:00 2001
From: Konstantin Tokarev <annulen@yandex.ru>
Date: Wed, 3 Jun 2020 15:01:42 +0300
Subject: [PATCH] Fix compilation with Python 3.9: avoid passing encoding to
json.load()
In Python 2.7 UTF-8 is assumed by default, while in Python 3 this argument
is not supported.
Change-Id: Ic459d60a6b20bc1838d8771bc36ac41614fe61a9
---
Source/JavaScriptCore/generate-bytecode-files | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/JavaScriptCore/generate-bytecode-files b/Source/JavaScriptCore/generate-bytecode-files
index c5dab429c7b0..af3431275ecf 100644
--- a/Source/JavaScriptCore/generate-bytecode-files
+++ b/Source/JavaScriptCore/generate-bytecode-files
@@ -163,7 +163,7 @@ if __name__ == "__main__":
initBytecodesFile = openOrExit(initASMFileName, "w")
try:
- bytecodeSections = json.load(bytecodeFile, encoding = "utf-8")
+ bytecodeSections = json.load(bytecodeFile)
except:
print("Unexpected error parsing {0}: {1}".format(bytecodeJSONFile, sys.exc_info()))

View File

@@ -0,0 +1,26 @@
Description: reduce the number of exported symbols in libQt5WebKit.so.5
Author: Dmitry Shachnev <mitya57@debian.org>
Forwarded: not-needed
Last-Update: 2017-08-27
--- a/Source/WTF/wtf/ExportMacros.h
+++ b/Source/WTF/wtf/ExportMacros.h
@@ -56,7 +56,7 @@
#elif defined(__GNUC__) && !defined(__CC_ARM) && !defined(__ARMCC__)
-#define WTF_EXPORT_DECLARATION __attribute__((visibility("default")))
+#define WTF_EXPORT_DECLARATION
#define WTF_IMPORT_DECLARATION WTF_EXPORT_DECLARATION
#define WTF_HIDDEN_DECLARATION __attribute__((visibility("hidden")))
--- a/Source/cmake/OptionsQt.cmake
+++ b/Source/cmake/OptionsQt.cmake
@@ -706,6 +706,7 @@ if (COMPILER_IS_GCC_OR_CLANG AND UNIX)
if (NOT SHARED_CORE)
set(CMAKE_C_FLAGS "-fvisibility=hidden ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden ${CMAKE_CXX_FLAGS}")
+ add_definitions(-DJS_NO_EXPORT)
endif ()
endif ()

View File

@@ -0,0 +1,16 @@
reduce_exports.diff
path_max.diff
support_riscv64.diff
bison_3.7.diff
no_pdf_image_plugin.diff
python_3.9.diff
glib_2.68.diff
jscore_big_endian.diff
icu_68.diff
gcc_13.diff
libxml2_2.12.diff
loongarch64.diff
offlineasm_ruby_3.2.diff
icu_75.1.diff
gcc_14.diff
icu_76.diff

View File

@@ -0,0 +1,61 @@
Description: add support for riscv64 architecture
Author: William Grant <wgrant@ubuntu.com>
Forwarded: https://github.com/qtwebkit/qtwebkit/pull/982
Last-Update: 2020-04-28
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -83,6 +83,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR
set(WTF_CPU_S390 1)
elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390x")
set(WTF_CPU_S390X 1)
+elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64")
+ set(WTF_CPU_RISCV64 1)
else ()
message(FATAL_ERROR "Unknown CPU '${LOWERCASE_CMAKE_SYSTEM_PROCESSOR}'")
endif ()
--- a/Source/JavaScriptCore/CMakeLists.txt
+++ b/Source/JavaScriptCore/CMakeLists.txt
@@ -1287,6 +1287,7 @@ elseif (WTF_CPU_S390)
elseif (WTF_CPU_S390X)
elseif (WTF_CPU_MIPS)
elseif (WTF_CPU_SH4)
+elseif (WTF_CPU_RISCV64)
elseif (WTF_CPU_X86)
elseif (WTF_CPU_X86_64)
if (MSVC AND ENABLE_JIT)
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -176,6 +176,11 @@
#define WTF_CPU_X86_SSE2 1
#endif
+/* CPU(RISCV64) - RISCV64 */
+#if defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64
+#define WTF_CPU_RISCV64 1
+#endif
+
/* CPU(ARM64) - Apple */
#if (defined(__arm64__) && defined(__APPLE__)) || defined(__aarch64__)
#define WTF_CPU_ARM64 1
@@ -707,7 +712,8 @@
|| CPU(S390X) \
|| CPU(MIPS64) \
|| CPU(PPC64) \
- || CPU(PPC64LE)
+ || CPU(PPC64LE) \
+ || CPU(RISCV64)
#define USE_JSVALUE64 1
#else
#define USE_JSVALUE32_64 1
--- 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(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA)
+#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(RISCV64)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__)
#if defined(_WIN32)