{"id":2225641,"url":"http://patchwork.ozlabs.org/api/patches/2225641/?format=json","web_url":"http://patchwork.ozlabs.org/project/buildroot/patch/20260421102843.160108-1-thomas@devoogdt.com/","project":{"id":27,"url":"http://patchwork.ozlabs.org/api/projects/27/?format=json","name":"Buildroot development","link_name":"buildroot","list_id":"buildroot.buildroot.org","list_email":"buildroot@buildroot.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260421102843.160108-1-thomas@devoogdt.com>","list_archive_url":null,"date":"2026-04-21T10:28:43","name":"[v1] package/webkitgtk: bump to 2.52.3","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"d41a5a1db4e92bcfba0fd0f526e593c6994bddc0","submitter":{"id":84152,"url":"http://patchwork.ozlabs.org/api/people/84152/?format=json","name":"Thomas Devoogdt","email":"thomas@devoogdt.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/buildroot/patch/20260421102843.160108-1-thomas@devoogdt.com/mbox/","series":[{"id":500776,"url":"http://patchwork.ozlabs.org/api/series/500776/?format=json","web_url":"http://patchwork.ozlabs.org/project/buildroot/list/?series=500776","date":"2026-04-21T10:28:43","name":"[v1] package/webkitgtk: bump to 2.52.3","version":1,"mbox":"http://patchwork.ozlabs.org/series/500776/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2225641/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2225641/checks/","tags":{},"related":[],"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=dDvO5eQR;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org\n (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org;\n envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org)"],"Received":["from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\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 4g0JVZ2Y4yz1yGs\n\tfor <incoming-buildroot@patchwork.ozlabs.org>;\n Tue, 21 Apr 2026 20:28:54 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id EDC6F83E65;\n\tTue, 21 Apr 2026 10:28:52 +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 gdIG7bp3OLSQ; Tue, 21 Apr 2026 10:28:51 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 7A57083E6B;\n\tTue, 21 Apr 2026 10:28:51 +0000 (UTC)","from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n by lists1.osuosl.org (Postfix) with ESMTP id CC952257\n for <buildroot@buildroot.org>; Tue, 21 Apr 2026 10:28:50 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp3.osuosl.org (Postfix) with ESMTP id BD963606FA\n for <buildroot@buildroot.org>; Tue, 21 Apr 2026 10:28:50 +0000 (UTC)","from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id sm4AjulcYBmI for <buildroot@buildroot.org>;\n Tue, 21 Apr 2026 10:28:49 +0000 (UTC)","from mail-wr1-f49.google.com (mail-wr1-f49.google.com\n [209.85.221.49])\n by smtp3.osuosl.org (Postfix) with ESMTPS id D843A606F7\n for <buildroot@buildroot.org>; Tue, 21 Apr 2026 10:28:48 +0000 (UTC)","by mail-wr1-f49.google.com with SMTP id\n ffacd0b85a97d-43eb05b1875so2380481f8f.3\n for <buildroot@buildroot.org>; Tue, 21 Apr 2026 03:28:48 -0700 (PDT)","from KORLIN44614.barco.com (d528f5fdd.static.telenet.be.\n [82.143.95.221]) by smtp.googlemail.com with ESMTPSA id\n ffacd0b85a97d-43fe4dc26a3sm41250948f8f.15.2026.04.21.03.28.45\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 21 Apr 2026 03:28:45 -0700 (PDT)"],"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 smtp1.osuosl.org 7A57083E6B","OpenDKIM Filter v2.11.0 smtp3.osuosl.org D843A606F7"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildroot.org;\n\ts=default; t=1776767331;\n\tbh=1mdW6Kh7n/IVEHHT0x8sYEZPoM5wJYMnp3712cvwsNQ=;\n\th=From:To:Cc:Date:Subject:List-Id:List-Unsubscribe:List-Archive:\n\t List-Post:List-Help:List-Subscribe:From;\n\tb=dDvO5eQRdBJCpeUXE5zMzxWW9PCM2426bDQUygEh5gd5b9Pbk3GG/SOAj0ZdsdMWT\n\t DaEkhKUGP9MJXc1biqfhoytDaHoKJM88RlqsDohbCanK5TxIgzYya1+jTsxFRhzIuu\n\t EbKY8aENZXJCnsKdWDu3njdxVHiailVIzsPhWSp0sWmzbj5k4NddrTXTVwe7ClWhh2\n\t Q5MmWNO2ms0KMRCcJ0/yXdzxbhW640bhGV7Hrj9eLj3N3FcQxbJs1Wz4/xpARNAzf9\n\t q0rFS+vDhHBs3F9E8796q70KjnB1LnhHhdkbCJ13vCLeIj5vYZLlj/LSlp849sruM1\n\t pICPP5+P5Rp0g==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=209.85.221.49;\n helo=mail-wr1-f49.google.com; envelope-from=thomas.devoogdt@gmail.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp3.osuosl.org D843A606F7","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776767326; x=1777372126;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=OdqVKIJ7A1g6WNSnR7CEjCT6R5QePAEYh+p9BKMm9Tk=;\n b=NREEBarTnYzZeuQ1Hg7a/4QF80eD2r6H4EIYfGk0GY6k3drhiPiJwtqHNeqN5Js37b\n zJKxv2qQo/ecWsunqoplVUrklppImde5mnuQCla/v07iE2CNG5sW6PLPZYN58bVKElBJ\n /Ue8pvpOnpNpFjrJIi7CyOXpKJ1pkA/fo/HysG6uSNNsUoqBnjO66Z4RcSQXvdPJWdY8\n zTCvKw1QocaQf3AdJ8wnh6TZ627zKMNWFUiZLnHimG4Uo649kD6z1SOQBGiH5mOHOp/I\n tzWsfoJSAocXCtuscHpOooFllvUMpVAgLS9w9HpKAkqTUGjh1NktzyiXV9jzSkmda/xW\n NVUQ==","X-Gm-Message-State":"AOJu0YxvJUONhQYqB3hoBikMicwtuYRffymWdpRnu35gBWAzgo62aunI\n 26Di2PZZ81aDe0eSXKiqzWMsZBPTvogMBeoP9USjuNs+NWZZHNbGLgd7zTJUWePi","X-Gm-Gg":"AeBDievauwdLZTpUcaq/x4gK3UDgeUlVOgNGfufgAFMKesDgBuQlObjXdkPnajmzdnf\n XkRsyW0xSA6a5zzLHYvJ3aIIsvhblp7YylR0vUxCf05RcHNol37ftFjuq8iwgYjJgz9JvWxBiiw\n SN/3xjh4wQ9mrrMyxMy+CWR6glb6bvvem+VrTSivPPdYaRrftz/I85IVtsyVPBULCQhBaNPoQQF\n rDG2Wm1Ga3wB4gbRTHBErvdsGOHSLcMVBCZhrfXxgLXcnMfBHdXbw/elcbeS+TZJTzrdpSAQHmi\n MVtW/H9G4YZJ5mnWP65tRqAzva5BSDxdydRy2buxvHtwKOzIzaK08jXcwAbTr2Tsx7zBSd6I/zs\n on2DHPJjBRolu8S+Fxb1Tm2fA5bx5yXhWzD1hjNHpSsaQZ0fEMtfn1fqV4f+xOdVf60OT8rL+Bs\n yo13tVHKBxApXrCJURlRsYzDoEi3u/F3UhRRUhtzBSuEnLl3kQ+JNjEDof4G22mwYajv/Aie+C3\n kFxJG9ADLYyG0x+L+FG/0YkvKOpxHPnEdRJa7AS/NfSPqYghmCnQcg8CyeQ/sMeZisWURcGSBh9\n sHIRecmCIU51PQJqgZU=","X-Received":"by 2002:a5d:64e3:0:b0:43e:aa88:f1a1 with SMTP id\n ffacd0b85a97d-43fe3dfd649mr27176218f8f.30.1776767326027;\n Tue, 21 Apr 2026 03:28:46 -0700 (PDT)","From":"Thomas Devoogdt <thomas@devoogdt.com>","To":"buildroot@buildroot.org","Cc":"Adrian Perez de Castro <aperez@igalia.com>,\n Thomas Devoogdt <thomas.devoogdt@barco.com>","Date":"Tue, 21 Apr 2026 12:28:43 +0200","Message-ID":"<20260421102843.160108-1-thomas@devoogdt.com>","X-Mailer":"git-send-email 2.43.0","MIME-Version":"1.0","X-Mailman-Original-Authentication-Results":"smtp3.osuosl.org;\n dmarc=none (p=none dis=none)\n header.from=devoogdt.com","Subject":"[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":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"buildroot-bounces@buildroot.org","Sender":"\"buildroot\" <buildroot-bounces@buildroot.org>"},"content":"From: Thomas Devoogdt <thomas.devoogdt@barco.com>\n\nThis is a major release to 2.52.x, see highlights:\n\nhttps://webkitgtk.org/2026/03/18/webkitgtk-2.52-highlights.html\n\nOther news:\n\nhttps://webkitgtk.org/news.html\n\nChanges:\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\nSigned-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","diff":"diff --git a/package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch b/package/webkitgtk/0001-JSC-Fix-ENABLE-JIT-build.patch\nnew file mode 100644\nindex 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+\ndiff --git a/package/webkitgtk/webkitgtk.hash b/package/webkitgtk/webkitgtk.hash\nindex 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\ndiff --git a/package/webkitgtk/webkitgtk.mk b/package/webkitgtk/webkitgtk.mk\nindex 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 ifeq ($(BR2_INIT_SYSTEMD),y)\n WEBKITGTK_CONF_OPTS += -DENABLE_JOURNALD_LOG=ON\n WEBKITGTK_DEPENDENCIES += systemd\n","prefixes":["v1"]}