From 741941bfad1b5a071bba76fd1e3a4df0e2ed5d95 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Sun, 12 Jun 2022 03:35:39 -0500 Subject: user/qt5-qtwebkit: Update snapshot Fixes: #644 --- user/qt5-qtwebkit/APKBUILD | 41 ++++++------ user/qt5-qtwebkit/armv6.patch | 72 +++++++++++++++++++++ user/qt5-qtwebkit/bug-931.patch | 10 --- user/qt5-qtwebkit/cmake.patch | 60 ----------------- user/qt5-qtwebkit/glib-compat.patch | 37 +++++++++++ user/qt5-qtwebkit/icu-68.patch | 124 ++++++++++++++++++++++++++++++++++++ user/qt5-qtwebkit/jsc-musl.patch | 32 ++++++++++ user/qt5-qtwebkit/new-bison.patch | 18 ++++++ user/qt5-qtwebkit/ppc-llint.patch | 10 +-- user/qt5-qtwebkit/ppc64-llint.patch | 28 ++++++++ 10 files changed, 338 insertions(+), 94 deletions(-) create mode 100644 user/qt5-qtwebkit/armv6.patch delete mode 100644 user/qt5-qtwebkit/bug-931.patch delete mode 100644 user/qt5-qtwebkit/cmake.patch create mode 100644 user/qt5-qtwebkit/glib-compat.patch create mode 100644 user/qt5-qtwebkit/icu-68.patch create mode 100644 user/qt5-qtwebkit/jsc-musl.patch create mode 100644 user/qt5-qtwebkit/new-bison.patch create mode 100644 user/qt5-qtwebkit/ppc64-llint.patch 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 # Maintainer: A. Wilcox 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 +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 +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 + #include + +-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(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::max()); + text->chunkOffset = offset < std::numeric_limits::max() ? static_cast(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::max()); + text->chunkOffset = offset < std::numeric_limits::max() ? static_cast(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(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(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(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(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 +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) -- cgit v1.2.3-60-g2f50