summaryrefslogtreecommitdiff
path: root/user/qt5-qtwebkit
diff options
context:
space:
mode:
Diffstat (limited to 'user/qt5-qtwebkit')
-rw-r--r--user/qt5-qtwebkit/APKBUILD41
-rw-r--r--user/qt5-qtwebkit/armv6.patch72
-rw-r--r--user/qt5-qtwebkit/bug-931.patch10
-rw-r--r--user/qt5-qtwebkit/cmake.patch60
-rw-r--r--user/qt5-qtwebkit/glib-compat.patch37
-rw-r--r--user/qt5-qtwebkit/icu-68.patch124
-rw-r--r--user/qt5-qtwebkit/jsc-musl.patch32
-rw-r--r--user/qt5-qtwebkit/new-bison.patch18
-rw-r--r--user/qt5-qtwebkit/ppc-llint.patch10
-rw-r--r--user/qt5-qtwebkit/ppc64-llint.patch28
10 files changed, 338 insertions, 94 deletions
diff --git a/user/qt5-qtwebkit/APKBUILD b/user/qt5-qtwebkit/APKBUILD
index d2962d50a..7431683e0 100644
--- a/user/qt5-qtwebkit/APKBUILD
+++ b/user/qt5-qtwebkit/APKBUILD
@@ -1,13 +1,12 @@
# Contributor: A. Wilcox <awilfox@adelielinux.org>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=qt5-qtwebkit
-_realname=$pkgname
-#qtwebkit
-pkgver=5.212.0_git20191114
-_realver=$(printf '%s' "$pkgver" | sed 's/_/-/')
+_realname=qtwebkit
+pkgver=5.212.0_git20200924
+_ts=1600955993
pkgrel=0
pkgdesc="Open source Web browser engine"
-url="https://github.com/qtwebkit/qtwebkit"
+url="https://github.com/qtwebkit/qtwebkit/wiki"
arch="all"
options="!check" # Tests fail (surprise), require X11.
license="LGPL-2.1+ AND BSD-3-Clause AND Others"
@@ -21,12 +20,15 @@ makedepends="$depends_dev ninja sqlite-dev icu-dev ruby perl bison flex gperf
ruby-dev glib-dev libgcrypt-dev libtasn1-dev"
subpackages="$pkgname-dev"
#source="https://github.com/qtwebkit/qtwebkit/releases/download/$_realname-$_realver/$_realname-$_realver.tar.xz
-source="https://distfiles.adelielinux.org/source/$_realname-$_realver.tar.xz
- bug-931.patch
- cmake.patch
+source="https://download.qt.io/snapshots/ci/qtwebkit/5.212/$_ts/src/submodules/$_realname-opensource-src-5.212.tar.xz
+ armv6.patch
+ glib-compat.patch
+ icu-68.patch
+ jsc-musl.patch
ppc-llint.patch
+ ppc64-llint.patch
"
-builddir="$srcdir"/$_realname-$_realver
+builddir="$srcdir"/$_realname-opensource-src-5.212
build() {
if [ "$CBUILD" != "$CHOST" ]; then
@@ -41,12 +43,6 @@ build() {
# aarch64
# armv7
# x86_64
- #
- # https://github.com/qtwebkit/qtwebkit/issues/930
- # -DENABLE_MEDIA_SOURCE=ON \
- # -DENABLE_VIDEO=ON \
- # -DENABLE_WEB_AUDIO=ON \
- # -DUSE_GSTREAMER=ON \
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
@@ -61,6 +57,10 @@ build() {
-DPORT=Qt \
-DUSE_SYSTEM_MALLOC=ON \
-DUSE_WOFF2=OFF \
+ -DENABLE_MEDIA_SOURCE=ON \
+ -DENABLE_VIDEO=ON \
+ -DENABLE_WEB_AUDIO=ON \
+ -DUSE_GSTREAMER=ON \
${CMAKE_CROSSOPTS} .
make
}
@@ -73,7 +73,10 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="ec009773953b9f3e2c0e47072cd678f7044b16219c85879a6031c109c7b2b84f426564bb673ccaafa0bcc3f7a656e3cb0d8e3be28d3bbfb401adcd1a6b8b9edd qt5-qtwebkit-5.212.0-git20191114.tar.xz
-85adb979eb5d58ccab85d07d6a6db470b34bdb6fd8af2eef04ce268da41a596b4a19295c97dca1201daf4a51ca9e183bb27dd36b9b12b0e149224793d1c190a9 bug-931.patch
-4ee26787bf01f3067fae51e1942b72d783629b13fe13ffcfba9329bbea823de7b751905f01c71c6c498164cb41a33765debce375a034dde83e3f784d6e549ada cmake.patch
-0b358e4df16e8792c995a385386bfe9e197e23854f30129b504d3ba851cdfab3a2adef462a6ae3a775ec01d02cd67ef404259491339336c6ce896d7940597c95 ppc-llint.patch"
+sha512sums="e2983ac291654ac75a8cdaaa1ca16810ae047e8d78c8910c415ab76e6efa532b75b119be8f053f00214ee5526099a75930becfbd23e8f7a4c08be32e5f41a1d7 qtwebkit-opensource-src-5.212.tar.xz
+ca77802de1b945c05b6a88d5cc0cbb093a751ef16626d221c8b2ca5cf841f5d42fffe62087df1ce0964f8ce72148c0109ff85e5cef3390125c133b310031028e armv6.patch
+9f42f3d64657fb9487d9299ad5931381f9aa91a746a5986dc361def5e9a6e02933054a66132fa99057460ad6de0c19e9b51e07594451cc4f38b19012a69d205c glib-compat.patch
+5f0ca182c68c55a6f221e96bf2221784c7126006ea8db3e9eee2b66dbdda18d7d0f9830e8345ac2b0bc6f557af5d2a54a321b06be4a2c845dd1003282b053443 icu-68.patch
+9e3638d4d5c6e56510525931b278c8d6e28134917c300837b4eccf1b9298af1e274668318af82091137e99b83da0f78904084b7ee9dd8422b347a0f35e765c31 jsc-musl.patch
+4a3a15f8b1e63cade07c589be45afd794b45b34ee98e4d2d3fc2f52662c26c518d400b44c9314e41113cad847b9efd544d2a4c02425c9892ca9729e218ae9306 ppc-llint.patch
+db98d710815eb68f1fb025098b04c34b33518750c193e702383ca879e145c52ba4786fa4721f384f01f90231c32be9478d507c1000eb761621751edcd071b966 ppc64-llint.patch"
diff --git a/user/qt5-qtwebkit/armv6.patch b/user/qt5-qtwebkit/armv6.patch
new file mode 100644
index 000000000..d2911d6d7
--- /dev/null
+++ b/user/qt5-qtwebkit/armv6.patch
@@ -0,0 +1,72 @@
+From 7cc86ebe881f36bfef18d8eeee666d2a55eae892 Mon Sep 17 00:00:00 2001
+From: Guilherme Iscaro <iscaro@profusion.mobi>
+Date: Fri, 31 Mar 2017 10:31:49 -0300
+Subject: [PATCH] Fix build on ARMv6.
+
+The ARMv6 and older architures does not support the movw and movl
+instructions, thus causing a build break.
+This patch fix the problem by creating a new offlineasm instruction,
+which will use the ldr instruction to load a immediate into a register.
+
+https://bugs.webkit.org/show_bug.cgi?id=141288
+
+Reviewed by NOBODY (OOPS!).
+
+* llint/LowLevelInterpreter.asm:
+* offlineasm/arm.rb:
+* offlineasm/instructions.rb:
+---
+ Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 8 +++++++-
+ Source/JavaScriptCore/offlineasm/arm.rb | 2 ++
+ Source/JavaScriptCore/offlineasm/instructions.rb | 3 ++-
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git Source/JavaScriptCore/llint/LowLevelInterpreter.asm Source/JavaScriptCore/llint/LowLevelInterpreter.asm
+index ab3c0c8e771..6c32eef8852 100644
+--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
+@@ -1167,7 +1167,13 @@ macro setEntryAddress(index, label)
+ move index, t4
+ storep t1, [a0, t4, 8]
+ elsif ARM or ARMv7 or ARMv7_TRADITIONAL
+- mvlbl (label - _relativePCBase), t4
++ if ARM
++ ldrlbl t4, label
++ ldrlbl t3, _relativePCBase
++ subp t4, t3, t4
++ else
++ mvlbl (label - _relativePCBase), t4
++ end
+ addp t4, t1, t4
+ move index, t3
+ storep t4, [a0, t3, 4]
+diff --git Source/JavaScriptCore/offlineasm/arm.rb Source/JavaScriptCore/offlineasm/arm.rb
+index c8064a59196..a9c40c8995c 100644
+--- a/Source/JavaScriptCore/offlineasm/arm.rb
++++ b/Source/JavaScriptCore/offlineasm/arm.rb
+@@ -504,6 +504,8 @@ class Instruction
+ when "mvlbl"
+ $asm.puts "movw #{operands[1].armOperand}, \#:lower16:#{operands[0].value}"
+ $asm.puts "movt #{operands[1].armOperand}, \#:upper16:#{operands[0].value}"
++ when "ldrlbl"
++ $asm.puts "ldr #{operands[0].armOperand}, =#{operands[1].value}"
+ when "nop"
+ $asm.puts "nop"
+ when "bieq", "bpeq", "bbeq"
+diff --git Source/JavaScriptCore/offlineasm/instructions.rb Source/JavaScriptCore/offlineasm/instructions.rb
+index bbfce7193b3..8cc1cb961ce 100644
+--- a/Source/JavaScriptCore/offlineasm/instructions.rb
++++ b/Source/JavaScriptCore/offlineasm/instructions.rb
+@@ -261,7 +261,8 @@ X86_INSTRUCTIONS =
+ ARM_INSTRUCTIONS =
+ [
+ "clrbp",
+- "mvlbl"
++ "mvlbl",
++ "ldrlbl"
+ ]
+
+ ARM64_INSTRUCTIONS =
+--
+2.12.1
+
diff --git a/user/qt5-qtwebkit/bug-931.patch b/user/qt5-qtwebkit/bug-931.patch
deleted file mode 100644
index 7d363dd62..000000000
--- a/user/qt5-qtwebkit/bug-931.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- qt5-qtwebkit-5.212.0-git20191114/Source/JavaScriptCore/runtime/NativeExecutable.cpp.old 2019-11-14 19:31:45.000000000 +0000
-+++ qt5-qtwebkit-5.212.0-git20191114/Source/JavaScriptCore/runtime/NativeExecutable.cpp 2020-01-04 19:14:22.974744920 +0000
-@@ -28,6 +28,7 @@
- #include "BatchedTransitionOptimizer.h"
- #include "CodeBlock.h"
- #include "Debugger.h"
-+#include "ExecutableBaseInlines.h"
- #include "JIT.h"
- #include "JSCInlines.h"
- #include "LLIntEntrypoint.h"
diff --git a/user/qt5-qtwebkit/cmake.patch b/user/qt5-qtwebkit/cmake.patch
deleted file mode 100644
index a41be9ce4..000000000
--- a/user/qt5-qtwebkit/cmake.patch
+++ /dev/null
@@ -1,60 +0,0 @@
---- qt5-qtwebkit-5.212.0-git20191114/Source/PlatformQt.cmake.old 2019-11-14 19:31:45.000000000 +0000
-+++ qt5-qtwebkit-5.212.0-git20191114/Source/PlatformQt.cmake 2020-01-04 20:53:20.522367347 +0000
-@@ -99,8 +99,8 @@
- set(Qt5@MODULE_NAME@_EXECUTABLE_COMPILE_FLAGS \"\")
- set(Qt5@MODULE_NAME@_PRIVATE_INCLUDE_DIRS \"\") # FIXME: Support private headers
-
--get_target_property(Qt5@MODULE_NAME@_INCLUDE_DIRS Qt5::@MODULE_NAME@ INTERFACE_INCLUDE_DIRECTORIES)
--get_target_property(Qt5@MODULE_NAME@_COMPILE_DEFINITIONS Qt5::@MODULE_NAME@ INTERFACE_COMPILE_DEFINITIONS)
-+get_target_property(Qt5@MODULE_NAME@_INCLUDE_DIRS Qt5::@FULL_MODULE_NAME@ INTERFACE_INCLUDE_DIRECTORIES)
-+get_target_property(Qt5@MODULE_NAME@_COMPILE_DEFINITIONS Qt5::@FULL_MODULE_NAME@ INTERFACE_COMPILE_DEFINITIONS)
-
- foreach (_module_dep \${_Qt5@MODULE_NAME@_MODULE_DEPENDENCIES})
- list(APPEND Qt5@MODULE_NAME@_INCLUDE_DIRS \${Qt5\${_module_dep}_INCLUDE_DIRS})
-@@ -117,6 +117,7 @@
- ")
-
- set(MODULE_NAME WebKit)
-+set(FULL_MODULE_NAME WebKitLegacy)
- string(CONFIGURE ${_package_footer_template} QTWEBKIT_PACKAGE_FOOTER @ONLY)
- ecm_configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/Qt5WebKitConfig.cmake.in"
- "${CMAKE_CURRENT_BINARY_DIR}/Qt5WebKitConfig.cmake"
-@@ -124,6 +125,7 @@
- )
-
- set(MODULE_NAME WebKitWidgets)
-+set(FULL_MODULE_NAME WebKitWidgets)
- string(CONFIGURE ${_package_footer_template} QTWEBKIT_PACKAGE_FOOTER @ONLY)
- ecm_configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/Qt5WebKitWidgetsConfig.cmake.in"
- "${CMAKE_CURRENT_BINARY_DIR}/Qt5WebKitWidgetsConfig.cmake"
-@@ -154,18 +154,18 @@
- )
-
- # QTFIXME
--#install(EXPORT WebKitTargets
--# FILE WebKitTargets.cmake
--# NAMESPACE Qt5::
--# DESTINATION "${KDE_INSTALL_CMAKEPACKAGEDIR}/Qt5WebKit"
--# COMPONENT Data
--#)
--#install(EXPORT Qt5WebKitWidgetsTargets
--# FILE Qt5WebKitWidgetsTargets.cmake
--# NAMESPACE Qt5::
--# DESTINATION "${KDE_INSTALL_CMAKEPACKAGEDIR}/Qt5WebKitWidgets"
--# COMPONENT Data
--#)
-+install(EXPORT WebKitTargets
-+ FILE WebKitTargets.cmake
-+ NAMESPACE Qt5::
-+ DESTINATION "${KDE_INSTALL_CMAKEPACKAGEDIR}/Qt5WebKit"
-+ COMPONENT Data
-+)
-+install(EXPORT Qt5WebKitWidgetsTargets
-+ FILE Qt5WebKitWidgetsTargets.cmake
-+ NAMESPACE Qt5::
-+ DESTINATION "${KDE_INSTALL_CMAKEPACKAGEDIR}/Qt5WebKitWidgets"
-+ COMPONENT Data
-+)
-
- # Documentation
-
diff --git a/user/qt5-qtwebkit/glib-compat.patch b/user/qt5-qtwebkit/glib-compat.patch
new file mode 100644
index 000000000..0873e8d4f
--- /dev/null
+++ b/user/qt5-qtwebkit/glib-compat.patch
@@ -0,0 +1,37 @@
+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 };
+--- qtwebkit-opensource-src-5.212/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp.old 2020-09-22 06:30:04.000000000 -0500
++++ qtwebkit-opensource-src-5.212/Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp 2022-06-12 02:35:30.360000000 -0500
+@@ -230,7 +230,7 @@
+ [](GstAppSink* sink, gpointer userData) -> GstFlowReturn {
+ return static_cast<AudioFileReader*>(userData)->handleSample(sink);
+ },
+- { nullptr }
++ nullptr
+ };
+ gst_app_sink_set_callbacks(GST_APP_SINK(sink), &callbacks, this, 0);
+
diff --git a/user/qt5-qtwebkit/icu-68.patch b/user/qt5-qtwebkit/icu-68.patch
new file mode 100644
index 000000000..70ee2a06d
--- /dev/null
+++ b/user/qt5-qtwebkit/icu-68.patch
@@ -0,0 +1,124 @@
+ICU uses uncapital bools now.
+
+Commit: https://github.com/unicode-org/icu/commit/c3fe7e09d844
+
+--- a/Source/WebCore/platform/text/TextCodecICU.cpp.orig 2020-03-04 17:16:37 UTC
++++ b/Source/WebCore/platform/text/TextCodecICU.cpp
+@@ -308,7 +308,7 @@ void TextCodecICU::createICUConverter() const
+ 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.orig 2020-03-04 17:16:37 UTC
++++ b/Source/WebCore/platform/text/icu/UTextProvider.h
+@@ -80,12 +80,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
+ // 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;
+- isAccessible = TRUE;
++ isAccessible = true;
+ return true;
+ }
+ if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
+ text->chunkOffset = text->chunkLength;
+- isAccessible = FALSE;
++ isAccessible = false;
+ return true;
+ }
+ } else {
+@@ -94,12 +94,12 @@ inline bool uTextAccessInChunkOrOutOfRange(UText* text
+ // 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;
+- isAccessible = TRUE;
++ isAccessible = true;
+ return true;
+ }
+ if (nativeIndex <= 0 && !text->chunkNativeStart) {
+ text->chunkOffset = 0;
+- isAccessible = FALSE;
++ isAccessible = false;
+ return true;
+ }
+ }
+--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp.orig 2020-03-04 17:16:37 UTC
++++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+@@ -100,23 +100,23 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
+ if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
+ // Already inside the buffer. Set the new offset.
+ uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+- return TRUE;
++ return true;
+ }
+ if (index >= length && uText->chunkNativeLimit == length) {
+ // Off the end of the buffer, but we can't get it.
+ uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+- return FALSE;
++ return false;
+ }
+ } else {
+ if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
+ // Already inside the buffer. Set the new offset.
+ uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
+- return TRUE;
++ return true;
+ }
+ if (!index && !uText->chunkNativeStart) {
+ // Already at the beginning; can't go any farther.
+ uText->chunkOffset = 0;
+- return FALSE;
++ return false;
+ }
+ }
+
+@@ -144,7 +144,7 @@ static UBool uTextLatin1Access(UText* uText, int64_t i
+
+ uText->nativeIndexingLimit = uText->chunkLength;
+
+- return TRUE;
++ return true;
+ }
+
+ static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
+@@ -336,7 +336,7 @@ static int64_t uTextLatin1ContextAwareNativeLength(UTe
+ static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
+ {
+ if (!text->context)
+- return FALSE;
++ return false;
+ int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
+ UBool isAccessible;
+ if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
+@@ -356,7 +356,7 @@ static UBool uTextLatin1ContextAwareAccess(UText* text
+ ASSERT(newContext == UTextProviderContext::PriorContext);
+ textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
+ }
+- return TRUE;
++ return true;
+ }
+
+ static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
+--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp.orig 2020-03-04 17:16:37 UTC
++++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+@@ -125,7 +125,7 @@ static inline int64_t uTextUTF16ContextAwareNativeLeng
+ static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
+ {
+ if (!text->context)
+- return FALSE;
++ return false;
+ int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
+ UBool isAccessible;
+ if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
+@@ -145,7 +145,7 @@ static UBool uTextUTF16ContextAwareAccess(UText* text,
+ ASSERT(newContext == UTextProviderContext::PriorContext);
+ textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
+ }
+- return TRUE;
++ return true;
+ }
+
+ static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
diff --git a/user/qt5-qtwebkit/jsc-musl.patch b/user/qt5-qtwebkit/jsc-musl.patch
new file mode 100644
index 000000000..0165f21dc
--- /dev/null
+++ b/user/qt5-qtwebkit/jsc-musl.patch
@@ -0,0 +1,32 @@
+--- a/Source/JavaScriptCore/runtime/Options.h 2020-04-14 00:51:51.000000000 +0200
++++ b/Source/JavaScriptCore/runtime/Options.h 2020-04-14 00:51:51.000000000 +0200
+@@ -40,6 +40,16 @@
+
+ namespace JSC {
+
++#if defined(__GLIBC__)
++constexpr unsigned jscMaxPerThreadStack = 4 * MB;
++constexpr unsigned jscSoftReservedZoneSize = 128 * KB;
++constexpr unsigned jscReservedZoneSize = 64 * KB;
++#else
++constexpr unsigned jscMaxPerThreadStack = 80 * KB;
++constexpr unsigned jscSoftReservedZoneSize = 32 * KB;
++constexpr unsigned jscReservedZoneSize = 16 * KB;
++#endif
++
+ // How do JSC VM options work?
+ // ===========================
+ // The JSC_OPTIONS() macro below defines a list of all JSC options in use,
+@@ -112,9 +122,9 @@
+ \
+ v(bool, reportMustSucceedExecutableAllocations, false, nullptr) \
+ \
+- v(unsigned, maxPerThreadStackUsage, 4 * MB, nullptr) \
+- v(unsigned, reservedZoneSize, 128 * KB, nullptr) \
+- v(unsigned, errorModeReservedZoneSize, 64 * KB, nullptr) \
++ v(unsigned, maxPerThreadStackUsage, jscMaxPerThreadStack, nullptr) \
++ v(unsigned, reservedZoneSize, jscSoftReservedZoneSize, nullptr) \
++ v(unsigned, errorModeReservedZoneSize, jscReservedZoneSize, nullptr) \
+ \
+ v(bool, crashIfCantAllocateJITMemory, false, nullptr) \
+ v(unsigned, jitMemoryReservationSize, 0, "Set this number to change the executable allocation size in ExecutableAllocatorFixedVMPool. (In bytes.)") \
diff --git a/user/qt5-qtwebkit/new-bison.patch b/user/qt5-qtwebkit/new-bison.patch
new file mode 100644
index 000000000..57855f12e
--- /dev/null
+++ b/user/qt5-qtwebkit/new-bison.patch
@@ -0,0 +1,18 @@
+--- a/Source/WebCore/css/makegrammar.pl 2020-04-14 00:51:51.000000000 +0200
++++ b/Source/WebCore/css/makegrammar.pl 2020-10-25 14:59:39.879927464 +0100
+@@ -73,7 +73,6 @@
+ }
+
+ my $fileBase = File::Spec->join($outputDir, $filename);
+-my @bisonCommand = ($bison, "-d", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp");
++my @bisonCommand = ($bison, "--no-lines", "--defines=$fileBase.cpp.h", "-p", $symbolsPrefix, $grammarFilePath, "--output=$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;
+
+@@ -91,6 +91,5 @@
+ print HEADER "#endif\n";
+ close HEADER;
+
+-unlink("$fileBase.cpp.h");
+ unlink("$fileBase.hpp");
+
diff --git a/user/qt5-qtwebkit/ppc-llint.patch b/user/qt5-qtwebkit/ppc-llint.patch
index 033bbab68..7f9be4e56 100644
--- a/user/qt5-qtwebkit/ppc-llint.patch
+++ b/user/qt5-qtwebkit/ppc-llint.patch
@@ -5,7 +5,7 @@ a crash as the generated code was endian specific.
--- qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
+++ qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
-@@ -1440,13 +1440,13 @@ _llint_op_put_by_id:
+@@ -1500,13 +1500,13 @@ _llint_op_put_by_id:
loadp StructureChain::m_vector[t3], t3
assert(macro (ok) btpnz t3, ok end)
@@ -14,19 +14,19 @@ a crash as the generated code was endian specific.
btpz t2, .opPutByIdTransitionChainDone
.opPutByIdTransitionChainLoop:
loadp [t3], t1
- bineq t1, JSCell::m_structureID[t2], .opPutByIdSlow
+ bpneq t1, JSCell::m_structureID[t2], .opPutByIdSlow
addp 4, t3
- loadp Structure::m_prototype[t1], t2
+ loadp Structure::m_prototype + PayloadOffset[t1], t2
btpnz t2, .opPutByIdTransitionChainLoop
.opPutByIdTransitionChainDone:
-@@ -2004,7 +2004,7 @@ _llint_throw_from_slow_path_trampoline:
+@@ -1984,7 +1984,7 @@ _llint_throw_from_slow_path_trampoline:
# When throwing from the interpreter (i.e. throwing from LLIntSlowPaths), so
# the throw target is not necessarily interpreted code, we come to here.
# This essentially emulates the JIT's throwing protocol.
- loadp Callee[cfr], t1
+ loadp Callee + PayloadOffset[cfr], t1
andp MarkedBlockMask, t1
- loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t1
- jmp VM::targetMachinePCForThrow[t1]
+ loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t1], t1
+ copyCalleeSavesToVMCalleeSavesBuffer(t1, t2)
diff --git a/user/qt5-qtwebkit/ppc64-llint.patch b/user/qt5-qtwebkit/ppc64-llint.patch
new file mode 100644
index 000000000..802c00ae6
--- /dev/null
+++ b/user/qt5-qtwebkit/ppc64-llint.patch
@@ -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)