[{"id":3679830,"web_url":"http://patchwork.ozlabs.org/comment/3679830/","msgid":"<20260421143511.GB2722013@igalia.com>","list_archive_url":null,"date":"2026-04-21T11:35:11","subject":"Re: [Buildroot] [PATCH v1] package/webkitgtk: bump to 2.52.3","submitter":{"id":71810,"url":"http://patchwork.ozlabs.org/api/people/71810/","name":"Adrian Perez de Castro","email":"aperez@igalia.com"},"content":"Hello Thomas, all,\n\nOn Tue, 21 Apr 2026 12:28:43 +0200 Thomas Devoogdt <thomas@devoogdt.com> wrote:\n \n> This is a major release to 2.52.x, see highlights:\n> \n> https://webkitgtk.org/2026/03/18/webkitgtk-2.52-highlights.html\n> \n> Other news:\n> \n> https://webkitgtk.org/news.html\n\nI have submitted a similar update just earlier today:\n\n  https://patchwork.ozlabs.org/project/buildroot/patch/20260420214451.2704785-1-aperez@igalia.com/\n \n> Changes:\n> \n> - Use USE_GSTREAMER rather than ENABLE_{VIDEO,WEB_{AUDIO,CODECS}}.\n>   Move USE_GSTREAMER_GL while at it.\n>   See https://github.com/WebKit/WebKit/commit/92179a19a0f189ff7ddcf0e1d2792804b65653d3.\n> \n> - Add 0001-JSC-Fix-ENABLE-JIT-build.patch to fix some undefined symbols.\n\nBut I did not include this patch, which actually makes sense. We will be\nbackporting it to the release stable branch, to have it included in 2.52.4\ndown the road.\n\n> Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>\n> ---\n>  .../0001-JSC-Fix-ENABLE-JIT-build.patch       | 331 ++++++++++++++++++\n>  package/webkitgtk/webkitgtk.hash              |   6 +-\n>  package/webkitgtk/webkitgtk.mk                |  24 +-\n>  3 files changed, 343 insertions(+), 18 deletions(-)\n>  create mode 100644 package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch\n> \n> diff --git a/package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch b/package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch\n> new file mode 100644\n> index 00000000000..c8779688e4d\n> --- /dev/null\n> +++ b/package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch\n> @@ -0,0 +1,331 @@\n> +From ad28ad528d433cff1fec831d922e569bf446773e Mon Sep 17 00:00:00 2001\n> +From: Shu-yu Guo <syg@apple.com>\n> +Date: Fri, 17 Apr 2026 15:57:23 -0700\n> +Subject: [PATCH] [JSC] Fix !ENABLE(JIT) build\n> + https://bugs.webkit.org/show_bug.cgi?id=306638 rdar://169822205\n> +\n> +Reviewed by Yusuke Suzuki.\n> +\n> +* Source/JavaScriptCore/jit/ExecutableAllocator.h:\n> +(JSC::performJITMemcpy):\n> +* Source/JavaScriptCore/llint/InPlaceInterpreter.asm:\n> +* Source/JavaScriptCore/llint/LLIntData.cpp:\n> +(JSC::LLInt::initialize):\n> +* Source/JavaScriptCore/wasm/WasmCallee.cpp:\n> +* Source/WTF/wtf/PlatformEnable.h:\n> +\n> +Canonical link: https://commits.webkit.org/311492@main\n> +\n> +(cherry picked from commit e7ae451260d742f70f63bd07ed1484331d534b3f)\n> +Upstream: https://github.com/WebKit/WebKit/pull/58096\n> +Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>\n> +---\n> + .../JavaScriptCore/jit/ExecutableAllocator.h  |  8 ++\n> + .../llint/InPlaceInterpreter.asm              |  8 +-\n> + Source/JavaScriptCore/llint/LLIntData.cpp     | 81 +++++++++++++++----\n> + Source/JavaScriptCore/wasm/WasmCallee.cpp     | 18 ++++-\n> + Source/WTF/wtf/PlatformEnable.h               |  2 +-\n> + 5 files changed, 93 insertions(+), 24 deletions(-)\n> +\n> +diff --git a/Source/JavaScriptCore/jit/ExecutableAllocator.h b/Source/JavaScriptCore/jit/ExecutableAllocator.h\n> +index 3e8efce28cfe..cb81579c8703 100644\n> +--- a/Source/JavaScriptCore/jit/ExecutableAllocator.h\n> ++++ b/Source/JavaScriptCore/jit/ExecutableAllocator.h\n> +@@ -390,6 +390,14 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN\n> + WTF_ALLOW_UNSAFE_BUFFER_USAGE_END\n> + }\n> + \n> ++template<RepatchingInfo>\n> ++inline void* performJITMemcpy(void *dst, const void *src, size_t n)\n> ++{\n> ++WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN\n> ++    return memcpy(dst, src, n);\n> ++WTF_ALLOW_UNSAFE_BUFFER_USAGE_END\n> ++}\n> ++\n> + inline bool isJITPC(void*) { return false; }\n> + #endif // ENABLE(JIT)\n> + \n> +diff --git a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm\n> +index 64db9cdb21df..dac1faa5260a 100644\n> +--- a/Source/JavaScriptCore/llint/InPlaceInterpreter.asm\n> ++++ b/Source/JavaScriptCore/llint/InPlaceInterpreter.asm\n> +@@ -420,7 +420,7 @@ end\n> + \n> + # OSR\n> + macro ipintPrologueOSR(increment)\n> +-if JIT\n> ++if WEBASSEMBLY_BBQJIT\n> +     loadp UnboxedWasmCalleeStackSlot[cfr], ws0\n> +     baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue\n> + \n> +@@ -457,11 +457,11 @@ end\n> +     if ARMv7\n> +         break # FIXME: ipint support.\n> +     end # ARMv7\n> +-end # JIT\n> ++end # WEBASSEMBLY_BBQJIT\n> + end\n> + \n> + macro ipintLoopOSR(increment)\n> +-if JIT and not ARMv7\n> ++if WEBASSEMBLY_BBQJIT and not ARMv7\n> +     validateOpcodeConfig(ws0)\n> +     loadp UnboxedWasmCalleeStackSlot[cfr], ws0\n> +     baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue\n> +@@ -492,7 +492,7 @@ end\n> + end\n> + \n> + macro ipintEpilogueOSR(increment)\n> +-if JIT and not ARMv7\n> ++if WEBASSEMBLY_BBQJIT and not ARMv7\n> +     loadp UnboxedWasmCalleeStackSlot[cfr], ws0\n> +     baddis increment, Wasm::IPIntCallee::m_tierUpCounter + Wasm::IPIntTierUpCounter::m_counter[ws0], .continue\n> + \n> +diff --git a/Source/JavaScriptCore/llint/LLIntData.cpp b/Source/JavaScriptCore/llint/LLIntData.cpp\n> +index 5d7c88f72571..2509dc4132f3 100644\n> +--- a/Source/JavaScriptCore/llint/LLIntData.cpp\n> ++++ b/Source/JavaScriptCore/llint/LLIntData.cpp\n> +@@ -199,8 +199,28 @@ void initialize()\n> + #if CPU(ARM64E)\n> + \n> + #if ENABLE(JIT_CAGE)\n> +-    if (Options::useJITCage())\n> ++    if (Options::useJITCage()) {\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jitCagePtr)] = jitCagePtrThunk().code().taggedPtr();\n> ++#if ENABLE(WEBASSEMBLY)\n> ++        // JSPI JITCage gates\n> ++        g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiResignReturnPCs)] = jspiResignReturnPCsThunk().code().taggedPtr();\n> ++        g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiExecuteSliceEntry)] = jspiExecuteSliceEntryThunk().code().taggedPtr();\n> ++        // jspiExitImplantedSlice is stored untagged because it's used as a return address\n> ++        // (not as a jump target) and will be signed by JITCage with the stack pointer diversifier.\n> ++        g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::jspiExitImplantedSlice)] = jspiExitImplantedSliceThunk().code().untaggedPtr();\n> ++#endif // ENABLE(WEBASSEMBLY)\n> ++    }\n> ++#endif\n> ++\n> ++#if ENABLE(JIT)\n> ++#define INITIALIZE_JS_GATE_JIT_PATH(name, tag) \\\n> ++    if (Options::useJIT()) { \\\n> ++        codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \\\n> ++        codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name \"_wide16\")); \\\n> ++        codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name \"_wide32\")); \\\n> ++    } else\n> ++#else\n> ++#define INITIALIZE_JS_GATE_JIT_PATH(name, tag)\n> + #endif\n> + \n> + #define INITIALIZE_JS_GATE(name, tag) \\\n> +@@ -208,11 +228,7 @@ void initialize()\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \\\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \\\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \\\n> +-        if (Options::useJIT()) { \\\n> +-            codeRef8.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \\\n> +-            codeRef16.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name \"_wide16\")); \\\n> +-            codeRef32.construct(createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name \"_wide32\")); \\\n> +-        } else { \\\n> ++        INITIALIZE_JS_GATE_JIT_PATH(name, tag) { \\\n> +             codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \\\n> +             codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \\\n> +             codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(js_trampoline_##name)); \\\n> +@@ -226,16 +242,23 @@ void initialize()\n> + \n> + #if ENABLE(WEBASSEMBLY)\n> + \n> ++#if ENABLE(JIT)\n> ++#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag) \\\n> ++    if (Options::useJIT()) { \\\n> ++        codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \\\n> ++        codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name \"_wide16\")); \\\n> ++        codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name \"_wide32\")); \\\n> ++    } else\n> ++#else\n> ++#define INITIALIZE_WASM_GATE_JIT_PATH(name, tag)\n> ++#endif\n> ++\n> + #define INITIALIZE_WASM_GATE(name, tag) \\\n> +     do { \\\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef8; \\\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef16; \\\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef32; \\\n> +-        if (Options::useJIT()) { \\\n> +-            codeRef8.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getCodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name)); \\\n> +-            codeRef16.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide16CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name \"_wide16\")); \\\n> +-            codeRef32.construct(createWasmGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(LLInt::getWide32CodeFunctionPtr<CFunctionPtrTag>(name##_return_location)), tag, #name \"_wide32\")); \\\n> +-        } else { \\\n> ++        INITIALIZE_WASM_GATE_JIT_PATH(name, tag) { \\\n> +             codeRef8.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \\\n> +             codeRef16.construct(LLInt::getWide16CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \\\n> +             codeRef32.construct(LLInt::getWide32CodeRef<NativeToJITGatePtrTag>(wasm_trampoline_##name)); \\\n> +@@ -253,10 +276,12 @@ void initialize()\n> +     // This is key to entering the interpreter.\n> +     {\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>> codeRef;\n> ++#if ENABLE(JIT)\n> +         if (Options::useJIT()) {\n> +             auto gateCodeRef = createJSGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(&vmEntryToJavaScriptGateAfter), JSEntryPtrTag, \"vmEntryToJavaScript\");\n> +             codeRef.construct(gateCodeRef.retagged<VMEntryToJITGatePtrTag>());\n> +         } else\n> ++#endif\n> +             codeRef.construct(MacroAssemblerCodeRef<VMEntryToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<VMEntryToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, VMEntryToJITGatePtrTag>(&vmEntryToJavaScriptTrampoline))));\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::vmEntryToJavaScript)] = codeRef.get().code().taggedPtr();\n> +     }\n> +@@ -268,79 +293,103 @@ void initialize()\n> + \n> +     {\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;\n> ++#if ENABLE(JIT)\n> +         if (Options::useJIT())\n> +             codeRef.construct(createTailCallGate(JSEntryPtrTag, true));\n> +         else\n> ++#endif\n> +             codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntryTrampoline))));\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntryPtrTag)]= codeRef.get().code().taggedPtr();\n> +     }\n> +     {\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;\n> ++#if ENABLE(JIT)\n> +         if (Options::useJIT())\n> +             codeRef.construct(createTailCallGate(JSEntryPtrTag, true));\n> +         else\n> ++#endif\n> +             codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallJSEntrySlowPathTrampoline))));\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallJSEntrySlowPathPtrTag)] = codeRef.get().code().taggedPtr();\n> +     }\n> +     {\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;\n> ++#if ENABLE(JIT)\n> +         if (Options::useJIT())\n> +             codeRef.construct(createTailCallGate(JSEntryPtrTag, false));\n> +         else\n> ++#endif\n> +             codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&tailCallWithoutUntagJSEntryTrampoline))));\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::tailCallWithoutUntagJSEntryPtrTag)]= codeRef.get().code().taggedPtr();\n> +     }\n> +     {\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;\n> ++#if ENABLE(JIT)\n> +         if (Options::useJIT())\n> +             codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag));\n> +         else\n> ++#endif\n> +             codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline))));\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr();\n> +     }\n> +     {\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;\n> ++#if ENABLE(JIT)\n> +         if (Options::useJIT())\n> +             codeRef.construct(createWasmTailCallGate(WasmEntryPtrTag));\n> +         else\n> ++#endif\n> +             codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&wasmTailCallTrampoline))));\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmIPIntTailCallWasmEntryPtrTag)]= codeRef.get().code().taggedPtr();\n> +     }\n> +     {\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;\n> ++#if ENABLE(JIT)\n> +         if (Options::useJIT())\n> +             codeRef.construct(exceptionHandlerGateThunk());\n> +         else\n> ++#endif\n> +             codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&exceptionHandlerTrampoline))));\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::exceptionHandler)] = codeRef.get().code().taggedPtr();\n> +     }\n> +     {\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> codeRef;\n> ++#if ENABLE(JIT)\n> +         if (Options::useJIT())\n> +             codeRef.construct(returnFromLLIntGateThunk());\n> +         else\n> ++#endif\n> +             codeRef.construct(MacroAssemblerCodeRef<NativeToJITGatePtrTag>::createSelfManagedCodeRef(CodePtr<NativeToJITGatePtrTag>::fromTaggedPtr(retagCodePtr<void*, CFunctionPtrTag, NativeToJITGatePtrTag>(&returnFromLLIntTrampoline))));\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::returnFromLLInt)] = codeRef.get().code().taggedPtr();\n> +     }\n> + \n> ++#if ENABLE(JIT)\n> +     if (Options::useJIT()) {\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = loopOSREntryGateThunk().code().taggedPtr();\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = entryOSREntryGateThunk().code().taggedPtr();\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = wasmOSREntryGateThunk().code().taggedPtr();\n> +-    } else {\n> ++    } else\n> ++#endif\n> ++    {\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::loopOSREntry)] = LLInt::getCodeRef<NativeToJITGatePtrTag>(loop_osr_entry_gate).code().taggedPtr();\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::entryOSREntry)] = nullptr;\n> +         g_jscConfig.llint.gateMap[static_cast<unsigned>(Gate::wasmOSREntry)] = nullptr;\n> +     }\n> + \n> ++#if ENABLE(JIT)\n> ++#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) \\\n> ++    if (Options::useJIT()) { \\\n> ++        tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \\\n> ++        untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \\\n> ++    } else\n> ++#else\n> ++#define INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name)\n> ++#endif\n> ++\n> + #define INITIALIZE_TAG_AND_UNTAG_THUNKS(name) \\\n> +     do { \\\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> tagCodeRef; \\\n> +         static LazyNeverDestroyed<MacroAssemblerCodeRef<NativeToJITGatePtrTag>> untagCodeRef; \\\n> +-        if (Options::useJIT()) { \\\n> +-            tagCodeRef.construct(tagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##TagGateAfter))); \\\n> +-            untagCodeRef.construct(untagGateThunk(retagCodePtr<void*, CFunctionPtrTag, OperationPtrTag>(name##UntagGateAfter))); \\\n> +-        } else { \\\n> ++        INITIALIZE_TAG_AND_UNTAG_THUNKS_JIT_PATH(name) { \\\n> +             tagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_tag)); \\\n> +             untagCodeRef.construct(LLInt::getCodeRef<NativeToJITGatePtrTag>(js_trampoline_##name##_untag)); \\\n> +         } \\\n> +diff --git a/Source/JavaScriptCore/wasm/WasmCallee.cpp b/Source/JavaScriptCore/wasm/WasmCallee.cpp\n> +index 94a845ab47e4..b689f00143ab 100644\n> +--- a/Source/JavaScriptCore/wasm/WasmCallee.cpp\n> ++++ b/Source/JavaScriptCore/wasm/WasmCallee.cpp\n> +@@ -55,13 +55,25 @@ WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(Callee);\n> + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JITCallee);\n> + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmCallee);\n> + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmToJSCallee);\n> ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee);\n> ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee);\n> ++\n> ++#if ENABLE(JIT)\n> + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(JSToWasmICCallee);\n> ++#endif\n> ++\n> ++#if ENABLE(WEBASSEMBLY_BBQJIT) || ENABLE(WEBASSEMBLY_OMGJIT)\n> + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OptimizingJITCallee);\n> ++#endif\n> ++\n> ++#if ENABLE(WEBASSEMBLY_BBQJIT)\n> ++WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee);\n> ++#endif\n> ++\n> ++#if ENABLE(WEBASSEMBLY_OMGJIT)\n> + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGCallee);\n> + WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(OMGOSREntryCallee);\n> +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(BBQCallee);\n> +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(IPIntCallee);\n> +-WTF_MAKE_COMPACT_TZONE_ALLOCATED_IMPL(WasmBuiltinCallee);\n> ++#endif\n> + \n> + Callee::Callee(Wasm::CompilationMode compilationMode)\n> +     : NativeCallee(NativeCallee::Category::Wasm, ImplementationVisibility::Private)\n> +diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h\n> +index 9c20eb45de48..1561e5ecc85a 100644\n> +--- a/Source/WTF/wtf/PlatformEnable.h\n> ++++ b/Source/WTF/wtf/PlatformEnable.h\n> +@@ -1006,7 +1006,7 @@\n> + #define ENABLE_JIT_OPERATION_DISASSEMBLY 1\n> + #endif\n> + \n> +-#if CPU(ARM64E)\n> ++#if CPU(ARM64E) && ENABLE(JIT)\n> + #define ENABLE_JIT_SIGN_ASSEMBLER_BUFFER 1\n> + #endif\n> + \n> +-- \n> +2.43.0\n> +\n> diff --git a/package/webkitgtk/webkitgtk.hash b/package/webkitgtk/webkitgtk.hash\n> index 77bdc5485bc..03b8d0a9bec 100644\n> --- a/package/webkitgtk/webkitgtk.hash\n> +++ b/package/webkitgtk/webkitgtk.hash\n> @@ -1,6 +1,6 @@\n> -# From https://webkitgtk.org/releases/webkitgtk-2.50.5.tar.xz.sums\n> -sha1  e93f7efa9fbc7304cc159c35d8e76d7febab2515  webkitgtk-2.50.5.tar.xz\n> -sha256  8737631bac3e9c7ad3e5208f9370e076c09d9c45b39980021ce54edadcc6f94f  webkitgtk-2.50.5.tar.xz\n> +# From https://webkitgtk.org/releases/webkitgtk-2.52.3.tar.xz.sums\n> +sha1  17f9b127618040a5f3fcbb70e37ea16ab6d69b0b  webkitgtk-2.52.3.tar.xz\n> +sha256  5b3e0d174e63dcc28848b1194e0e7448d5948c3c2427ecd931c2c5be5261aebb  webkitgtk-2.52.3.tar.xz\n>  \n>  # Hashes for license files:\n>  sha256  0b5d3a7cc325942567373b0ecd757d07c132e0ebd7c97bfc63f7e1a76094edb4  Source/WebCore/LICENSE-APPLE\n> diff --git a/package/webkitgtk/webkitgtk.mk b/package/webkitgtk/webkitgtk.mk\n> index 26c70ae6c8c..d5b7639ee61 100644\n> --- a/package/webkitgtk/webkitgtk.mk\n> +++ b/package/webkitgtk/webkitgtk.mk\n> @@ -4,7 +4,7 @@\n>  #\n>  ################################################################################\n>  \n> -WEBKITGTK_VERSION = 2.50.5\n> +WEBKITGTK_VERSION = 2.52.3\n>  WEBKITGTK_SITE = https://www.webkitgtk.org/releases\n>  WEBKITGTK_SOURCE = webkitgtk-$(WEBKITGTK_VERSION).tar.xz\n>  WEBKITGTK_INSTALL_STAGING = YES\n> @@ -56,16 +56,16 @@ WEBKITGTK_CONF_OPTS += -DENABLE_BUBBLEWRAP_SANDBOX=OFF\n>  endif\n>  \n>  ifeq ($(BR2_PACKAGE_WEBKITGTK_MULTIMEDIA),y)\n> -WEBKITGTK_CONF_OPTS += \\\n> -\t-DENABLE_VIDEO=ON \\\n> -\t-DENABLE_WEB_AUDIO=ON \\\n> -\t-DENABLE_WEB_CODECS=ON\n> +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER=ON\n>  WEBKITGTK_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-bad gst1-plugins-base\n>  else\n> -WEBKITGTK_CONF_OPTS += \\\n> -\t-DENABLE_VIDEO=OFF \\\n> -\t-DENABLE_WEB_AUDIO=OFF \\\n> -\t-DENABLE_WEB_CODECS=OFF\n> +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER=OFF\n> +endif\n> +\n> +ifeq ($(BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL),y)\n> +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=ON\n> +else\n> +WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF\n>  endif\n>  \n>  ifeq ($(BR2_PACKAGE_WEBKITGTK_WEBDRIVER),y)\n> @@ -160,12 +160,6 @@ else\n>  WEBKITGTK_CONF_OPTS += -DENABLE_WAYLAND_TARGET=OFF\n>  endif\n>  \n> -ifeq ($(BR2_PACKAGE_WEBKITGTK_USE_GSTREAMER_GL),y)\n> -WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=ON\n> -else\n> -WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF\n> -endif\n> -\n\nHonestly, I would not move the GStreamer-GL part, because it adds noise\nto the diff without making much of a difference.\n\n>  ifeq ($(BR2_INIT_SYSTEMD),y)\n>  WEBKITGTK_CONF_OPTS += -DENABLE_JOURNALD_LOG=ON\n>  WEBKITGTK_DEPENDENCIES += systemd\n> -- \n> 2.43.0\n\nCheers,\n—Adrián","headers":{"Return-Path":"<buildroot-bounces@buildroot.org>","X-Original-To":["incoming-buildroot@patchwork.ozlabs.org","buildroot@buildroot.org"],"Delivered-To":["patchwork-incoming-buildroot@legolas.ozlabs.org","buildroot@buildroot.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=buildroot.org header.i=@buildroot.org\n header.a=rsa-sha256 header.s=default header.b=It/flTzD;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org\n (client-ip=140.211.166.137; helo=smtp4.osuosl.org;\n envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org)"],"Received":["from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0KzS508wz1yGt\n\tfor <incoming-buildroot@patchwork.ozlabs.org>;\n Tue, 21 Apr 2026 21:35:32 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 5159B41F3A;\n\tTue, 21 Apr 2026 11:35:30 +0000 (UTC)","from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id x-zDmJMewbOo; Tue, 21 Apr 2026 11:35:27 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 8F7EE411C4;\n\tTue, 21 Apr 2026 11:35:27 +0000 (UTC)","from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n by lists1.osuosl.org (Postfix) with ESMTP id 07E9824D\n for <buildroot@buildroot.org>; Tue, 21 Apr 2026 11:35:26 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id DEDF083984\n for <buildroot@buildroot.org>; Tue, 21 Apr 2026 11:35:25 +0000 (UTC)","from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id nDXEdg-cLXVL for <buildroot@buildroot.org>;\n Tue, 21 Apr 2026 11:35:24 +0000 (UTC)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n by smtp1.osuosl.org (Postfix) with ESMTPS id A5AC58397F\n for <buildroot@buildroot.org>; Tue, 21 Apr 2026 11:35:21 +0000 (UTC)","from 91-154-227-245.elisa-laajakaista.fi ([91.154.227.245]\n helo=kodama) by fanzine2.igalia.com with esmtpsa\n (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim)\n id 1wF9Nt-001i3P-05; Tue, 21 Apr 2026 13:35:17 +0200","from localhost (kodama [local])\n by kodama (OpenSMTPD) with ESMTPA id 677c5a7b;\n Tue, 21 Apr 2026 11:35:16 +0000 (UTC)"],"X-Virus-Scanned":["amavis at osuosl.org","amavis at osuosl.org"],"X-Comment":"SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org;\n receiver=<UNKNOWN> ","DKIM-Filter":["OpenDKIM Filter v2.11.0 smtp4.osuosl.org 8F7EE411C4","OpenDKIM Filter v2.11.0 smtp1.osuosl.org A5AC58397F"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildroot.org;\n\ts=default; t=1776771327;\n\tbh=mA8z/DrK2soPyFVNDo617VFfbJJ5inwhVP26pFsaWgY=;\n\th=Date:From:To:Cc:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=It/flTzDnRsCsehlESm3HeT8uz8RXRKzmmFgYTf0d8SFG/BrYkOyKrcH0azyEmF7S\n\t DHWShqVUEfV+xRMenmRsx75s7shSyVk8DpfLnw6Qpy706+8WN5NaN022vq4L6wblxh\n\t 6VqrA3O808WJ9DeE6/IZyaYNjeciHxB41mRi1tgZ/FjYQ/UJOupb1FJ0pHx2lqg/6q\n\t KIRLEoR/0+Lh6gTUWaXcmhPrk00h8abcEkPxtgX+nUDxi+wcv21mWUkvGbZhT+YAhQ\n\t QlWtHt7K4TrqdTDHUBjektAV0KZqPi5GHBoxLj5I01Xs+R7vgSwW+cTR7JirtDXISt\n\t aCo/qFRDaX3bw==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=213.97.179.56;\n helo=fanzine2.igalia.com; envelope-from=aperez@igalia.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp1.osuosl.org A5AC58397F","Date":"Tue, 21 Apr 2026 14:35:11 +0300","Message-ID":"<20260421143511.GB2722013@igalia.com>","From":"Adrian Perez de Castro <aperez@igalia.com>","To":"Thomas Devoogdt <thomas@devoogdt.com>","Cc":"buildroot@buildroot.org, Thomas Devoogdt <thomas.devoogdt@barco.com>","In-Reply-To":"<20260421102843.160108-1-thomas@devoogdt.com>","References":"<20260421102843.160108-1-thomas@devoogdt.com>","MIME-Version":"1.0","X-Mailman-Original-DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt;\n c=relaxed/relaxed; d=igalia.com;\n s=20170329; h=Content-Type:MIME-Version:References:In-Reply-To:Subject:Cc:To:\n From:Message-ID:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID:\n Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n List-Post:List-Owner:List-Archive;\n bh=cnpG+3ytB0B7qXHoGE4Nmyh7vmqdbEZ1yjLqZTLmt/4=; b=HdSxz1yYVrPv3JVrMLf4LXrPpv\n eKffCSrORRq190DqTYvFYZQw4/fDyuhjwG48rL2ntlj7e+Bvu9/9QG6r1U6PLUgtODbrNldDKf/hk\n 5Tnn5vL/2JbxL7EnPhp2bceMzKEzzAhKbo54dxRTmDHC7I1RarpxnFck6pddEEclxDdpd+0uzGGK0\n eKhUy8CoEXPLU6D19n6dPj25/kqoMh/s/uxdtlgFx5lmfdJIQnRB4ZiifbMYKyEIL1nytO2NEtXyk\n 9gTBAHlgJEtb+q3jTp+mSEU1tSGMU8KY7+2Y7x8dn6ZAQW5J6P8NKngGfsU3Q54PR6Rqyo74mApYc\n M+ggOHiQ==;","X-Mailman-Original-Authentication-Results":["smtp1.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=igalia.com","smtp1.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=igalia.com header.i=@igalia.com header.a=rsa-sha256\n header.s=20170329 header.b=HdSxz1yY"],"Subject":"Re: [Buildroot] [PATCH v1] package/webkitgtk: bump to 2.52.3","X-BeenThere":"buildroot@buildroot.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Discussion and development of buildroot <buildroot.buildroot.org>","List-Unsubscribe":"<https://lists.buildroot.org/mailman/options/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=unsubscribe>","List-Archive":"<http://lists.buildroot.org/pipermail/buildroot/>","List-Post":"<mailto:buildroot@buildroot.org>","List-Help":"<mailto:buildroot-request@buildroot.org?subject=help>","List-Subscribe":"<https://lists.buildroot.org/mailman/listinfo/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=subscribe>","Content-Type":"multipart/mixed; boundary=\"===============4336110679077910812==\"","Errors-To":"buildroot-bounces@buildroot.org","Sender":"\"buildroot\" <buildroot-bounces@buildroot.org>"}}]