package/webkitgtk: bump to 2.52.3
PATCH 1/1 package/webkitgtk: bump to 2.52.3
From: Thomas Devoogdt <[email protected]>
This is a major release to 2.52.x, see highlights:
https://webkitgtk.org/2026/03/18/webkitgtk-2.52-highlights.html
Other news:
https://webkitgtk.org/news.html
Changes:
- Use USE_GSTREAMER rather than ENABLE_{VIDEO,WEB_{AUDIO,CODECS}}.
Move USE_GSTREAMER_GL while at it.
See https://github.com/WebKit/WebKit/commit/92179a19a0f189ff7ddcf0e1d2792804b65653d3.
- Add 0001-JSC-Fix-ENABLE-JIT-build.patch to fix some undefined symbols.
--- .../0001-JSC-Fix-ENABLE-JIT-build.patch | 331 ++++++++++++++++++ package/webkitgtk/webkitgtk.hash | 6 +- package/webkitgtk/webkitgtk.mk | 24 +- 3 files changed, 343 insertions(+), 18 deletions(-) create mode 100644 package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch
package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch new file +331 -0
@@ -0,0 +1,331 @@ +From ad28ad528d433cff1fec831d922e569bf446773e Mon Sep 17 00:00:00 2001 +From: Shu-yu Guo <[email protected]> +Date: Fri, 17 Apr 2026 15:57:23 -0700 +Subject: [PATCH] [JSC] Fix !ENABLE(JIT) build + https://bugs.webkit.org/show_bug.cgi?id=306638 rdar://169822205 + +Reviewed by Yusuke Suzuki. + +* Source/JavaScriptCore/jit/ExecutableAllocator.h: +(JSC::performJITMemcpy): +* Source/JavaScriptCore/llint/InPlaceInterpreter.asm: +* Source/JavaScriptCore/llint/LLIntData.cpp: +(JSC::LLInt::initialize): +* Source/JavaScriptCore/wasm/WasmCallee.cpp: +* Source/WTF/wtf/PlatformEnable.h: + +Canonical link: https://commits.webkit.org/311492@main + +(cherry picked from commit e7ae451260d742f70f63bd07ed1484331d534b3f) +Upstream: https://github.com/WebKit/WebKit/pull/58096 +Signed-off-by: Thomas Devoogdt <[email protected]> +--- + .../JavaScriptCore/jit/ExecutableAllocator.h | 8 ++ + .../llint/InPlaceInterpreter.asm | 8 +- + Source/JavaScriptCore/llint/LLIntData.cpp | 81 +++++++++++++++---- + Source/JavaScriptCore/wasm/WasmCallee.cpp | 18 ++++- + Source/WTF/wtf/PlatformEnable.h | 2 +- + 5 files changed, 93 insertions(+), 24 deletions(-) + +diff --git a/Source/JavaScriptCore/jit/ExecutableAllocator.h b/Source/JavaScriptCore/jit/ExecutableAllocator.h +index 3e8efce28cfe..cb81579c8703 100644 +--- a/Source/JavaScriptCore/jit/ExecutableAllocator.h ++++ b/Source/JavaScriptCore/jit/ExecutableAllocator.h +@@ -390,6 +390,14 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN + WTF_ALLOW_UNSAFE_BUFFER_USAGE_END + } + ++template<RepatchingInfo> ++inline void* performJITMemcpy(void *dst, const void *src, size_t n) ++{ ++WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN ++ return memcpy(dst, src, n); ++WTF_ALLOW_UNSAFE_BUFFER_USAGE_END ++} ++ + inline bool isJITPC(void*) { return false; } + #endif // ENABLE(JIT) + +diff --git a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm +index 64db9cdb21df..dac1faa5260a 100644 +--- a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm ++++ b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm +@@ -420,7 +420,7 @@ end + + # OSR + macro ipintPrologueOSR(increment) +-if JIT ++if WEBASSEMBLY_BBQJIT + loadp UnboxedWasmCalleeStackSlot[cfr], ws0 + baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue + +@@ -457,11 +457,11 @@ end + if ARMv7 + break # FIXME: ipint support. + end # ARMv7 +-end # JIT ++end # WEBASSEMBLY_BBQJIT + end + + macro ipintLoopOSR(increment) +-if JIT and not ARMv7 ++if WEBASSEMBLY_BBQJIT and not ARMv7 + validateOpcodeConfig(ws0) + loadp UnboxedWasmCalleeStackSlot[cfr], ws0 + baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue +@@ -492,7 +492,7 @@ end + end + + macro ipintEpilogueOSR(increment) +-if JIT and not ARMv7 ++if WEBASSEMBLY_BBQJIT and not ARMv7 + loadp UnboxedWasmCalleeStackSlot[cfr], ws0 + baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue + +diff --git a/Source/JavaScriptCore/llint/LLIntData.cpp b/Source/JavaScriptCore/llint/LLIntData.cpp +index 5d7c88f72571..2509dc4132f3 100644 +--- a/Source/JavaScriptCore/llint/LLIntData.cpp ++++ b/Source/JavaScriptCore/llint/LLIntData.cpp +@@ -199,8 +199,28 @@ void initialize() + #if CPU(ARM64E) + + #if ENABLE(JIT_CAGE) +- if (Options::useJITCage()) ++ if (Options::useJITCage()) { + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jitCagePtr)] = jitCagePtrThunk().code().taggedPtr(); ++#if ENABLE(WEBASSEMBLY) ++ // JSPI JITCage gates ++ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiResignReturnPCs)] = jspiResignReturnPCsThunk().code().taggedPtr(); ++ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiExecuteSliceEntry)] = jspiExecuteSliceEntryThunk().code().taggedPtr(); ++ // jspiExitImplantedSlice is stored untagged because it's used as a return address ++ // (not as a jump target) and will be signed by JITCage with the stack pointer diversifier. ++ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiExitImplantedSlice)] = jspiExitImplantedSliceThunk().code().untaggedPtr(); ++#endif // ENABLE(WEBASSEMBLY) ++ } ++#endif ++ ++#if ENABLE(JIT) ++#define INITIALIZE_JS_GATE_JIT_PATH(name, tag) \ ++ if (Options::useJIT()) { \ ++ codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \ ++ codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \ ++ codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \ ++ } else ++#else ++#define INITIALIZE_JS_GATE_JIT_PATH(name, tag) + #endif + + #define INITIALIZE_JS_GATE(name, tag) \ +@@ -208,11 +228,7 @@ void initialize() + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \ +- if (Options::useJIT()) { \ +- codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \ +- codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \ +- codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \ +- } else { \ ++ INITIALIZE_JS_GATE_JIT_PATH(name, tag) { \ + codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \ + codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \ + codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \ +@@ -226,16 +242,23 @@ void initialize() + + #if ENABLE(WEBASSEMBLY) + ++#if ENABLE(JIT) ++#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag) \ ++ if (Options::useJIT()) { \ ++ codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \ ++ codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \ ++ codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \ ++ } else ++#else ++#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag) ++#endif ++ + #define INITIALIZE_WASM_GATE(name, tag) \ + do { \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \ +- if (Options::useJIT()) { \ +- codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \ +- codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \ +- codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \ +- } else { \ ++ INITIALIZE_WASM_GATE_JIT_PATH(name, tag) { \ + codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \ + codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \ + codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \ +@@ -253,10 +276,12 @@ void initialize() + // This is key to entering the interpreter. + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) { + auto gateCodeRef = createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(&vmEntryToJavaScriptGateAfter), JSEntryPtrTag, "vmEntryToJavaScript"); + codeRef.construct(gateCodeRef.retagged<VMEntryToJITGatePtrTag>()); + } else ++#endif + codeRef.construct(MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<VMEntryToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, VMEntryToJITGatePtrTag>(&vmEntryToJavaScriptTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::vmEntryToJavaScript)] = codeRef.get().code().taggedPtr(); + } +@@ -268,79 +293,103 @@ void initialize() + + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createTailCallGate(JSEntryPtrTag, true)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntryTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntryPtrTag)]= codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createTailCallGate(JSEntryPtrTag, true)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntrySlowPathTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntrySlowPathPtrTag)] = codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createTailCallGate(JSEntryPtrTag, false)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallWithoutUntagJSEntryTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallWithoutUntagJSEntryPtrTag)]= codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmIPIntTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(exceptionHandlerGateThunk()); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&exceptionHandlerTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::exceptionHandler)] = codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(returnFromLLIntGateThunk()); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&returnFromLLIntTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::returnFromLLInt)] = codeRef.get().code().taggedPtr(); + } + ++#if ENABLE(JIT) + if (Options::useJIT()) { + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = loopOSREntryGateThunk().code().taggedPtr(); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = entryOSREntryGateThunk().code().taggedPtr(); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = wasmOSREntryGateThunk().code().taggedPtr(); +- } else { ++ } else ++#endif ++ { + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = LLInt::getCodeRef<NativeToJITGatePtrTag>(loop_osr_entry_gate).code().taggedPtr(); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = nullptr; + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = nullptr; + } + ++#if ENABLE(JIT) ++#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) \ ++ if (Options::useJIT()) { \ ++ tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \ ++ untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \ ++ } else ++#else ++#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) ++#endif ++ + #define INITIALIZE_TAG_AND_UNTAG_THUNKS(name) \ + do { \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> tagCodeRef; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> untagCodeRef; \ +- if (Options::useJIT()) { \ +- tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \ +- untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \ +- } else { \ ++ INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) { \ + tagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_tag)); \ + untagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_untag)); \ + } \ +diff --git a/Source/JavaScriptCore/wasm/WasmCallee.cpp b/Source/JavaScriptCore/wasm/WasmCallee.cpp +index 94a845ab47e4..b689f00143ab 100644 +--- a/Source/JavaScriptCore/wasm/WasmCallee.cpp ++++ b/Source/JavaScriptCore/wasm/WasmCallee.cpp +@@ -55,13 +55,25 @@ WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(Callee); + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JITCallee); + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmCallee); + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmToJSCallee); ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee); ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee); ++ ++#if ENABLE(JIT) + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmICCallee); ++#endif ++ ++#if ENABLE(WEBASSEMBLY_BBQJIT) || ENABLE(WEBASSEMBLY_OMGJIT) + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OptimizingJITCallee); ++#endif ++ ++#if ENABLE(WEBASSEMBLY_BBQJIT) ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee); ++#endif ++ ++#if ENABLE(WEBASSEMBLY_OMGJIT) + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGCallee); + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGOSREntryCallee); +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee); +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee); +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee); ++#endif + + Callee::Callee(Wasm::CompilationMode compilationMode) + : NativeCallee(NativeCallee::Category::Wasm, ImplementationVisibility::Private) +diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h +index 9c20eb45de48..1561e5ecc85a 100644 +--- a/Source/WTF/wtf/PlatformEnable.h ++++ b/Source/WTF/wtf/PlatformEnable.h +@@ -1006,7 +1006,7 @@ + #define ENABLE_JIT_OPERATION_DISASSEMBLY 1 + #endif + +-#if CPU(ARM64E) ++#if CPU(ARM64E) && ENABLE(JIT) + #define ENABLE_JIT_SIGN_ASSEMBLER_BUFFER 1 + #endif + +-- +2.43.0 +
package/webkitgtk/webkitgtk.hash +3 -3
@@ -1,6 +1,6 @@ -# From https://webkitgtk.org/releases/webkitgtk-2.50.5.tar.xz.sums -sha1 e93f7efa9fbc7304cc159c35d8e76d7febab2515 webkitgtk-2.50.5.tar.xz -sha256 8737631bac3e9c7ad3e5208f9370e076c09d9c45b39980021ce54edadcc6f94f webkitgtk-2.50.5.tar.xz +# From https://webkitgtk.org/releases/webkitgtk-2.52.3.tar.xz.sums +sha1 17f9b127618040a5f3fcbb70e37ea16ab6d69b0b webkitgtk-2.52.3.tar.xz +sha256 5b3e0d174e63dcc28848b1194e0e7448d5948c3c2427ecd931c2c5be5261aebb webkitgtk-2.52.3.tar.xz # Hashes for license files: sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 Source/WebCore/LICENSE-APPLE
package/webkitgtk/webkitgtk.mk +9 -15
@@ -4,7 +4,7 @@ # ################################################################################ -WEBKITGTK_VERSION = 2.50.5 +WEBKITGTK_VERSION = 2.52.3 WEBKITGTK_SITE = https://www.webkitgtk.org/releases WEBKITGTK_SOURCE = webkitgtk-$(WEBKITGTK_VERSION).tar.xz WEBKITGTK_INSTALL_STAGING = YES
@@ -56,16 +56,16 @@ WEBKITGTK_CONF_OPTS += -DENABLE_BUBBLEWRAP_SANDBOX=OFF endif ifeq ($(BR2_PACKAGE_WEBKITGTK_MULTIMEDIA),y) -WEBKITGTK_CONF_OPTS += \ - -DENABLE_VIDEO=ON \ - -DENABLE_WEB_AUDIO=ON \ - -DENABLE_WEB_CODECS=ON +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER=ON WEBKITGTK_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-bad gst1-plugins-base else -WEBKITGTK_CONF_OPTS += \ - -DENABLE_VIDEO=OFF \ - -DENABLE_WEB_AUDIO=OFF \ - -DENABLE_WEB_CODECS=OFF +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER=OFF +endif + +ifeq ($(BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL),y) +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=ON +else +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF endif ifeq ($(BR2_PACKAGE_WEBKITGTK_WEBDRIVER),y)
@@ -160,12 +160,6 @@ else WEBKITGTK_CONF_OPTS += -DENABLE_WAYLAND_TARGET=OFF endif -ifeq ($(BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL),y) -WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=ON -else -WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF -endif - ifeq ($(BR2_INIT_SYSTEMD),y) WEBKITGTK_CONF_OPTS += -DENABLE_JOURNALD_LOG=ON WEBKITGTK_DEPENDENCIES += systemd
Signature · 6 lines
2.43.0 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Hello Thomas, all,
Quoted 7 lines · On Tue, 21 Apr 2026 12:28:43 +0200 Thomas Devoogdt <[email protected]> wrote:
This is a major release to 2.52.x, see highlights:
https://webkitgtk.org/2026/03/18/webkitgtk-2.52-highlights.html
Other news:
I have submitted a similar update just earlier today:
https://patchwork.ozlabs.org/project/buildroot/patch/[email protected]/
Quoted 7 lines
Changes:
- Use
USE_GSTREAMERrather than ENABLE_{VIDEO,WEB_{AUDIO,CODECS}}.
MoveUSE_GSTREAMER_GLwhile at it.
See https://github.com/WebKit/WebKit/commit/92179a19a0f189ff7ddcf0e1d2792804b65653d3.- Add 0001-JSC-Fix-ENABLE-JIT-build.patch to fix some undefined symbols.
But I did not include this patch, which actually makes sense. We will be backporting it to the release stable branch, to have it included in 2.52.4 down the road.
Quoted 398 lines
Signed-off-by Thomas Devoogdt <[email protected]>--- .../0001-JSC-Fix-ENABLE-JIT-build.patch | 331 ++++++++++++++++++ package/webkitgtk/webkitgtk.hash | 6 +- package/webkitgtk/webkitgtk.mk | 24 +- 3 files changed, 343 insertions(+), 18 deletions(-) create mode 100644 package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patchpackage/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch new file +331
-0@@ -0,0 +1,331 @@ +From ad28ad528d433cff1fec831d922e569bf446773e Mon Sep 17 00:00:00 2001 +From: Shu-yu Guo <[email protected]> +Date: Fri, 17 Apr 2026 15:57:23 -0700 +Subject: [PATCH] [JSC] Fix !ENABLE(JIT) build + https://bugs.webkit.org/show_bug.cgi?id=306638 rdar://169822205 + +Reviewed by Yusuke Suzuki. + +* Source/JavaScriptCore/jit/ExecutableAllocator.h: +(JSC::performJITMemcpy): +* Source/JavaScriptCore/llint/InPlaceInterpreter.asm: +* Source/JavaScriptCore/llint/LLIntData.cpp: +(JSC::LLInt::initialize): +* Source/JavaScriptCore/wasm/WasmCallee.cpp: +* Source/WTF/wtf/PlatformEnable.h: + +Canonical link: https://commits.webkit.org/311492@main + +(cherry picked from commit e7ae451260d742f70f63bd07ed1484331d534b3f) +Upstream: https://github.com/WebKit/WebKit/pull/58096 +Signed-off-by: Thomas Devoogdt <[email protected]> +--- + .../JavaScriptCore/jit/ExecutableAllocator.h | 8 ++ + .../llint/InPlaceInterpreter.asm | 8 +- + Source/JavaScriptCore/llint/LLIntData.cpp | 81 +++++++++++++++---- + Source/JavaScriptCore/wasm/WasmCallee.cpp | 18 ++++- + Source/WTF/wtf/PlatformEnable.h | 2 +- + 5 files changed, 93 insertions(+), 24 deletions(-) + +diff --git a/Source/JavaScriptCore/jit/ExecutableAllocator.h b/Source/JavaScriptCore/jit/ExecutableAllocator.h +index 3e8efce28cfe..cb81579c8703 100644 +--- a/Source/JavaScriptCore/jit/ExecutableAllocator.h ++++ b/Source/JavaScriptCore/jit/ExecutableAllocator.h +@@ -390,6 +390,14 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN + WTF_ALLOW_UNSAFE_BUFFER_USAGE_END + } + ++template<RepatchingInfo> ++inline void* performJITMemcpy(void *dst, const void *src, size_t n) ++{ ++WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN ++ return memcpy(dst, src, n); ++WTF_ALLOW_UNSAFE_BUFFER_USAGE_END ++} ++ + inline bool isJITPC(void*) { return false; } + #endif // ENABLE(JIT) + +diff --git a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm +index 64db9cdb21df..dac1faa5260a 100644 +--- a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm ++++ b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm +@@ -420,7 +420,7 @@ end + + # OSR + macro ipintPrologueOSR(increment) +-if JIT ++if WEBASSEMBLY_BBQJIT + loadp UnboxedWasmCalleeStackSlot[cfr], ws0 + baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue + +@@ -457,11 +457,11 @@ end + if ARMv7 + break # FIXME: ipint support. + end # ARMv7 +-end # JIT ++end # WEBASSEMBLY_BBQJIT + end + + macro ipintLoopOSR(increment) +-if JIT and not ARMv7 ++if WEBASSEMBLY_BBQJIT and not ARMv7 + validateOpcodeConfig(ws0) + loadp UnboxedWasmCalleeStackSlot[cfr], ws0 + baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue +@@ -492,7 +492,7 @@ end + end + + macro ipintEpilogueOSR(increment) +-if JIT and not ARMv7 ++if WEBASSEMBLY_BBQJIT and not ARMv7 + loadp UnboxedWasmCalleeStackSlot[cfr], ws0 + baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue + +diff --git a/Source/JavaScriptCore/llint/LLIntData.cpp b/Source/JavaScriptCore/llint/LLIntData.cpp +index 5d7c88f72571..2509dc4132f3 100644 +--- a/Source/JavaScriptCore/llint/LLIntData.cpp ++++ b/Source/JavaScriptCore/llint/LLIntData.cpp +@@ -199,8 +199,28 @@ void initialize() + #if CPU(ARM64E) + + #if ENABLE(JIT_CAGE) +- if (Options::useJITCage()) ++ if (Options::useJITCage()) { + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jitCagePtr)] = jitCagePtrThunk().code().taggedPtr(); ++#if ENABLE(WEBASSEMBLY) ++ // JSPI JITCage gates ++ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiResignReturnPCs)] = jspiResignReturnPCsThunk().code().taggedPtr(); ++ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiExecuteSliceEntry)] = jspiExecuteSliceEntryThunk().code().taggedPtr(); ++ // jspiExitImplantedSlice is stored untagged because it's used as a return address ++ // (not as a jump target) and will be signed by JITCage with the stack pointer diversifier. ++ g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiExitImplantedSlice)] = jspiExitImplantedSliceThunk().code().untaggedPtr(); ++#endif // ENABLE(WEBASSEMBLY) ++ } ++#endif ++ ++#if ENABLE(JIT) ++#define INITIALIZE_JS_GATE_JIT_PATH(name, tag) \ ++ if (Options::useJIT()) { \ ++ codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \ ++ codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \ ++ codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \ ++ } else ++#else ++#define INITIALIZE_JS_GATE_JIT_PATH(name, tag) + #endif + + #define INITIALIZE_JS_GATE(name, tag) \ +@@ -208,11 +228,7 @@ void initialize() + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \ +- if (Options::useJIT()) { \ +- codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \ +- codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \ +- codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \ +- } else { \ ++ INITIALIZE_JS_GATE_JIT_PATH(name, tag) { \ + codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \ + codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \ + codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \ +@@ -226,16 +242,23 @@ void initialize() + + #if ENABLE(WEBASSEMBLY) + ++#if ENABLE(JIT) ++#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag) \ ++ if (Options::useJIT()) { \ ++ codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \ ++ codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \ ++ codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \ ++ } else ++#else ++#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag) ++#endif ++ + #define INITIALIZE_WASM_GATE(name, tag) \ + do { \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \ +- if (Options::useJIT()) { \ +- codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \ +- codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide16")); \ +- codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name "_wide32")); \ +- } else { \ ++ INITIALIZE_WASM_GATE_JIT_PATH(name, tag) { \ + codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \ + codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \ + codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \ +@@ -253,10 +276,12 @@ void initialize() + // This is key to entering the interpreter. + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) { + auto gateCodeRef = createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(&vmEntryToJavaScriptGateAfter), JSEntryPtrTag, "vmEntryToJavaScript"); + codeRef.construct(gateCodeRef.retagged<VMEntryToJITGatePtrTag>()); + } else ++#endif + codeRef.construct(MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<VMEntryToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, VMEntryToJITGatePtrTag>(&vmEntryToJavaScriptTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::vmEntryToJavaScript)] = codeRef.get().code().taggedPtr(); + } +@@ -268,79 +293,103 @@ void initialize() + + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createTailCallGate(JSEntryPtrTag, true)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntryTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntryPtrTag)]= codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createTailCallGate(JSEntryPtrTag, true)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntrySlowPathTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntrySlowPathPtrTag)] = codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createTailCallGate(JSEntryPtrTag, false)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallWithoutUntagJSEntryTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallWithoutUntagJSEntryPtrTag)]= codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag)); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmIPIntTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(exceptionHandlerGateThunk()); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&exceptionHandlerTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::exceptionHandler)] = codeRef.get().code().taggedPtr(); + } + { + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef; ++#if ENABLE(JIT) + if (Options::useJIT()) + codeRef.construct(returnFromLLIntGateThunk()); + else ++#endif + codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&returnFromLLIntTrampoline)))); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::returnFromLLInt)] = codeRef.get().code().taggedPtr(); + } + ++#if ENABLE(JIT) + if (Options::useJIT()) { + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = loopOSREntryGateThunk().code().taggedPtr(); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = entryOSREntryGateThunk().code().taggedPtr(); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = wasmOSREntryGateThunk().code().taggedPtr(); +- } else { ++ } else ++#endif ++ { + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = LLInt::getCodeRef<NativeToJITGatePtrTag>(loop_osr_entry_gate).code().taggedPtr(); + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = nullptr; + g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = nullptr; + } + ++#if ENABLE(JIT) ++#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) \ ++ if (Options::useJIT()) { \ ++ tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \ ++ untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \ ++ } else ++#else ++#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) ++#endif ++ + #define INITIALIZE_TAG_AND_UNTAG_THUNKS(name) \ + do { \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> tagCodeRef; \ + static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> untagCodeRef; \ +- if (Options::useJIT()) { \ +- tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \ +- untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \ +- } else { \ ++ INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) { \ + tagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_tag)); \ + untagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_untag)); \ + } \ +diff --git a/Source/JavaScriptCore/wasm/WasmCallee.cpp b/Source/JavaScriptCore/wasm/WasmCallee.cpp +index 94a845ab47e4..b689f00143ab 100644 +--- a/Source/JavaScriptCore/wasm/WasmCallee.cpp ++++ b/Source/JavaScriptCore/wasm/WasmCallee.cpp +@@ -55,13 +55,25 @@ WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(Callee); + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JITCallee); + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmCallee); + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmToJSCallee); ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee); ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee); ++ ++#if ENABLE(JIT) + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmICCallee); ++#endif ++ ++#if ENABLE(WEBASSEMBLY_BBQJIT) || ENABLE(WEBASSEMBLY_OMGJIT) + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OptimizingJITCallee); ++#endif ++ ++#if ENABLE(WEBASSEMBLY_BBQJIT) ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee); ++#endif ++ ++#if ENABLE(WEBASSEMBLY_OMGJIT) + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGCallee); + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGOSREntryCallee); +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee); +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee); +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee); ++#endif + + Callee::Callee(Wasm::CompilationMode compilationMode) + : NativeCallee(NativeCallee::Category::Wasm, ImplementationVisibility::Private) +diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h +index 9c20eb45de48..1561e5ecc85a 100644 +--- a/Source/WTF/wtf/PlatformEnable.h ++++ b/Source/WTF/wtf/PlatformEnable.h +@@ -1006,7 +1006,7 @@ + #define ENABLE_JIT_OPERATION_DISASSEMBLY 1 + #endif + +-#if CPU(ARM64E) ++#if CPU(ARM64E) && ENABLE(JIT) + #define ENABLE_JIT_SIGN_ASSEMBLER_BUFFER 1 + #endif + +-- +2.43.0 +package/webkitgtk/webkitgtk.hash +3
-3@@ -1,6 +1,6 @@ -# From https://webkitgtk.org/releases/webkitgtk-2.50.5.tar.xz.sums -sha1 e93f7efa9fbc7304cc159c35d8e76d7febab2515 webkitgtk-2.50.5.tar.xz -sha256 8737631bac3e9c7ad3e5208f9370e076c09d9c45b39980021ce54edadcc6f94f webkitgtk-2.50.5.tar.xz +# From https://webkitgtk.org/releases/webkitgtk-2.52.3.tar.xz.sums +sha1 17f9b127618040a5f3fcbb70e37ea16ab6d69b0b webkitgtk-2.52.3.tar.xz +sha256 5b3e0d174e63dcc28848b1194e0e7448d5948c3c2427ecd931c2c5be5261aebb webkitgtk-2.52.3.tar.xz # Hashes for license files: sha256 0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4 Source/WebCore/LICENSE-APPLEpackage/webkitgtk/webkitgtk.mk +9
-9@@ -4,7 +4,7 @@ # ################################################################################ -WEBKITGTK_VERSION = 2.50.5 +WEBKITGTK_VERSION = 2.52.3 WEBKITGTK_SITE = https://www.webkitgtk.org/releases WEBKITGTK_SOURCE = webkitgtk-$(WEBKITGTK_VERSION).tar.xz WEBKITGTK_INSTALL_STAGING = YES@@ -56,16 +56,16 @@ WEBKITGTK_CONF_OPTS += -DENABLE_BUBBLEWRAP_SANDBOX=OFF endif ifeq ($(BR2_PACKAGE_WEBKITGTK_MULTIMEDIA),y) -WEBKITGTK_CONF_OPTS += \ - -DENABLE_VIDEO=ON \ - -DENABLE_WEB_AUDIO=ON \ - -DENABLE_WEB_CODECS=ON +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER=ON WEBKITGTK_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-bad gst1-plugins-base else -WEBKITGTK_CONF_OPTS += \ - -DENABLE_VIDEO=OFF \ - -DENABLE_WEB_AUDIO=OFF \ - -DENABLE_WEB_CODECS=OFF +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER=OFF +endif + +ifeq ($(BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL),y) +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=ON +else +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF endif ifeq ($(BR2_PACKAGE_WEBKITGTK_WEBDRIVER),y)
package/webkitgtk/webkitgtk.mk else · line 168
Quoted 9 lines
package/webkitgtk/webkitgtk.mk +0
-6@@ -160,12 +160,6 @@ else WEBKITGTK_CONF_OPTS += -DENABLE_WAYLAND_TARGET=OFF endif -ifeq ($(BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL),y) -WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=ON -else -WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF -endif -
Honestly, I would not move the GStreamer-GL part, because it adds noise to the diff without making much of a difference.
Quoted 5 lines
package/webkitgtk/webkitgtk.mk +0
-0ifeq ($(BR2_INIT_SYSTEMD),y) WEBKITGTK_CONF_OPTS += -DENABLE_JOURNALD_LOG=ON WEBKITGTK_DEPENDENCIES += systemdSignature · 1 line
2.43.0
Cheers,
—Adrián
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot