Update to 2.52.4

Resolves: RHEL-181173
Resolves: RHEL-181186
Resolves: RHEL-181194
Resolves: RHEL-181211
Resolves: RHEL-181222
Resolves: RHEL-181227
Resolves: RHEL-181243
Resolves: RHEL-181256
Resolves: RHEL-181262
Resolves: RHEL-181270
Resolves: RHEL-181281
Resolves: RHEL-181290
Resolves: RHEL-181302
Resolves: RHEL-181313
Resolves: RHEL-181332
Resolves: RHEL-181342
This commit is contained in:
Michael Catanzaro 2026-06-10 10:05:56 -05:00
parent 32c010cd2e
commit ea7959e370
6 changed files with 81 additions and 361 deletions

View File

@ -1,329 +0,0 @@
From a98fdf70489a743d3ee98f91758e043ffee9f9ca Mon Sep 17 00:00:00 2001
From: Shu-yu Guo <syg@apple.com>
Date: Fri, 17 Apr 2026 16:10:11 -0500
Subject: [PATCH] Cherry-pick 7cda001308f2.
https://bugs.webkit.org/show_bug.cgi?id=306638
[JSC] Fix !ENABLE(JIT) build
https://bugs.webkit.org/show_bug.cgi?id=306638
rdar://169822205
Reviewed by NOBODY (OOPS!).
* 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:
---
.../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.53.0

46
build.patch Normal file
View File

@ -0,0 +1,46 @@
From 5de06e39b421b2db74d30eb0ea76f8b754f8546b Mon Sep 17 00:00:00 2001
From: Alberto Garcia <berto@igalia.com>
Date: Tue, 2 Jun 2026 07:24:38 -0700
Subject: [PATCH] REGRESSION(313606@main): Fails to build with system malloc
https://bugs.webkit.org/show_bug.cgi?id=316083
Reviewed by Fujii Hironori.
Don't add bmalloc_CopyHeaders to LLIntOffsetsExtractor_DEPENDENCIES if
USE_SYSTEM_MALLOC is on.
* Source/JavaScriptCore/CMakeLists.txt:
Canonical link: https://commits.webkit.org/314364@main
---
Source/JavaScriptCore/CMakeLists.txt | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
index e65f1d4237d9..2de9aa7792e8 100644
--- a/Source/JavaScriptCore/CMakeLists.txt
+++ b/Source/JavaScriptCore/CMakeLists.txt
@@ -427,8 +427,10 @@ set(LLIntSettingsExtractor_DEPENDENCIES
JavaScriptCore_CopyHeaders
JavaScriptCore_CopyPrivateHeaders
WTF_CopyHeaders
- bmalloc_CopyHeaders
)
+if (NOT USE_SYSTEM_MALLOC)
+ list(APPEND LLIntSettingsExtractor_DEPENDENCIES bmalloc_CopyHeaders)
+endif ()
WEBKIT_EXECUTABLE(LLIntSettingsExtractor)
# LLIntSettingsExtractor target needs to have a direct or indirect
@@ -454,8 +456,10 @@ set(LLIntOffsetsExtractor_DEPENDENCIES
JavaScriptCore_CopyHeaders
JavaScriptCore_CopyPrivateHeaders
WTF_CopyHeaders
- bmalloc_CopyHeaders
)
+if (NOT USE_SYSTEM_MALLOC)
+ list(APPEND LLIntOffsetsExtractor_DEPENDENCIES bmalloc_CopyHeaders)
+endif ()
WEBKIT_EXECUTABLE(LLIntOffsetsExtractor)
# The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than

View File

@ -1,4 +1,4 @@
From faa96c8ff6fa906beaa5daf8e36bc1f865a9cf66 Mon Sep 17 00:00:00 2001
From 214fc050c44b5e57a748de8cb6f158d831209dce Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Fri, 4 Apr 2025 13:58:05 -0500
Subject: [PATCH] Build against GLib 2.56
@ -388,11 +388,11 @@ index 6112a107f99a..b569c48de5ba 100644
issuer = certificate.get();
i++;
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
index a5ebd3e3d879..ce1791f7a470 100644
index 94fc72774189..9c699e416486 100644
--- a/Source/cmake/OptionsGTK.cmake
+++ b/Source/cmake/OptionsGTK.cmake
@@ -8,7 +8,7 @@ SET_PROJECT_VERSION(2 52 3)
set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
@@ -11,7 +11,7 @@ set(ENABLE_UNSAFE_BUFFER_USAGE_WARNING ON)
list(APPEND WEBKIT_UNSAFE_BUFFER_WARNING_FLAGS -Wno-unsafe-buffer-usage-in-format-attr-call)
# Update Source/WTF/wtf/Platform.h to match required GLib versions.
-find_package(GLib 2.70.0 REQUIRED COMPONENTS GioUnix Thread Module)
@ -400,7 +400,7 @@ index a5ebd3e3d879..ce1791f7a470 100644
find_package(Cairo 1.16.0 REQUIRED)
find_package(LibGcrypt 1.7.0 REQUIRED)
find_package(Soup3 3.0.0 REQUIRED)
@@ -258,6 +258,11 @@ if (ENABLED_COMPILER_SANITIZERS)
@@ -261,6 +261,11 @@ if (ENABLED_COMPILER_SANITIZERS)
set(ENABLE_DOCUMENTATION OFF)
endif ()
@ -452,5 +452,5 @@ index d3fbb968ee46..4f49ad82f9fd 100644
}
--
2.53.0
2.54.0

View File

@ -1,4 +1,4 @@
From 6b251bc34ceb8a76c1a3ca5671c5228f1dcf745b Mon Sep 17 00:00:00 2001
From 22d68ee5b56f424318a3bec5c750814b610af79d Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Mon, 6 Apr 2026 13:29:22 -0500
Subject: [PATCH 1/2] Revert "[CMake] Use imported targets in the libsoup
@ -317,10 +317,10 @@ index f981707b11dc..6a5b4d3bda61 100644
${WEBKIT_DIR}/WPEPlatform
${WPEPlatform_DERIVED_SOURCES_DIR}
--
2.53.0
2.54.0
From 467479cc8d7eb8754e50e89acbc46f34d03f25ec Mon Sep 17 00:00:00 2001
From a5fd87a2b59147b0d847e2f391f95108a9a9441e Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Mon, 6 Apr 2026 13:26:24 -0500
Subject: [PATCH 2/2] Revert "[GTK] Remove support for building against
@ -354,7 +354,7 @@ This reverts commit 6153cafaf3bd0db47a50f088e752e73a39d40921.
.../glib/RemoteInspectorHTTPServer.cpp | 13 +
.../gtk/webkitgtk-web-process-extension.pc.in | 2 +-
Source/WebKit/gtk/webkitgtk.pc.in | 2 +-
Source/cmake/OptionsGTK.cmake | 35 ++-
Source/cmake/OptionsGTK.cmake | 31 ++-
Source/cmake/WebKitFeatures.cmake | 1 +
.../Tests/WebKitGLib/TestAuthentication.cpp | 45 +++
.../Tests/WebKitGLib/TestBackForwardList.cpp | 5 +
@ -375,7 +375,7 @@ This reverts commit 6153cafaf3bd0db47a50f088e752e73a39d40921.
.../Tests/WebKitGtk/TestContextMenu.cpp | 9 +
.../glib/WebKitGLib/WebKitTestServer.cpp | 6 +
.../glib/WebKitGLib/WebKitTestServer.h | 4 +
47 files changed, 1053 insertions(+), 17 deletions(-)
47 files changed, 1051 insertions(+), 15 deletions(-)
create mode 100644 Source/WebCore/platform/network/soup/SoupVersioning.h
diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
@ -2281,10 +2281,10 @@ index db0fb001f327..8d7c3e9d086d 100644
Libs: -L${libdir} -lwebkit@WEBKITGTK_API_INFIX@gtk-@WEBKITGTK_API_VERSION@
Cflags: -I${includedir}/webkitgtk-@WEBKITGTK_API_VERSION@
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
index 6d5f17debcc7..a856d1ffd945 100644
index 6609382b3bf6..a2a58f359276 100644
--- a/Source/cmake/OptionsGTK.cmake
+++ b/Source/cmake/OptionsGTK.cmake
@@ -11,7 +11,6 @@ set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
@@ -14,7 +14,6 @@ list(APPEND WEBKIT_UNSAFE_BUFFER_WARNING_FLAGS -Wno-unsafe-buffer-usage-in-forma
find_package(GLib 2.56.0 REQUIRED COMPONENTS GioUnix Thread Module)
find_package(Cairo 1.14.0 REQUIRED)
find_package(LibGcrypt 1.7.0 REQUIRED)
@ -2292,7 +2292,7 @@ index 6d5f17debcc7..a856d1ffd945 100644
find_package(Tasn1 REQUIRED)
find_package(HarfBuzz 1.7.5 REQUIRED COMPONENTS ICU)
find_package(ICU 70.1 REQUIRED COMPONENTS data i18n uc)
@@ -58,6 +57,7 @@ WEBKIT_OPTION_DEFINE(USE_LIBDRM "Whether to enable usage of libdrm." PUBLIC ON)
@@ -61,6 +60,7 @@ WEBKIT_OPTION_DEFINE(USE_LIBDRM "Whether to enable usage of libdrm." PUBLIC ON)
WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyphenation implementation." PUBLIC ON)
WEBKIT_OPTION_DEFINE(USE_LIBSECRET "Whether to enable the persistent credential storage using libsecret." PUBLIC ON)
WEBKIT_OPTION_DEFINE(USE_SKIA_OPENTYPE_SVG "Whether to use the Skia built-in support for OpenType SVG fonts." PUBLIC ON)
@ -2300,7 +2300,7 @@ index 6d5f17debcc7..a856d1ffd945 100644
WEBKIT_OPTION_DEFINE(USE_SYSTEM_SYSPROF_CAPTURE "Whether to use a system-provided libsysprof-capture" PUBLIC ON)
WEBKIT_OPTION_DEFINE(ENABLE_JSC_RESTRICTED_OPTIONS_BY_DEFAULT "Whether to enable dangerous development options in JSC by default." PRIVATE OFF)
@@ -65,6 +65,8 @@ WEBKIT_OPTION_DEPEND(ENABLE_DOCUMENTATION ENABLE_INTROSPECTION)
@@ -68,6 +68,8 @@ WEBKIT_OPTION_DEPEND(ENABLE_DOCUMENTATION ENABLE_INTROSPECTION)
WEBKIT_OPTION_DEPEND(USE_GBM USE_LIBDRM)
WEBKIT_OPTION_DEPEND(USE_SKIA_OPENTYPE_SVG USE_SKIA)
@ -2309,7 +2309,7 @@ index 6d5f17debcc7..a856d1ffd945 100644
# Private options specific to the GTK port. Changing these options is
# completely unsupported. They are intended for use only by WebKit developers.
WEBKIT_OPTION_DEFINE(USE_SPIEL "Whether to enable usage of LibSpiel for speech synthesis." PRIVATE OFF)
@@ -181,10 +183,32 @@ if (ENABLE_WAYLAND_TARGET AND NOT ${GTK_SUPPORTS_WAYLAND})
@@ -184,10 +186,32 @@ if (ENABLE_WAYLAND_TARGET AND NOT ${GTK_SUPPORTS_WAYLAND})
set(ENABLE_WAYLAND_TARGET OFF)
endif ()
@ -2342,22 +2342,18 @@ index 6d5f17debcc7..a856d1ffd945 100644
else ()
set(WEBKITGTK_API_INFIX "2")
set(WEBKITGTK_API_VERSION "4.1")
@@ -201,9 +225,12 @@ find_package(GLIB ${GLIB_MINIMUM_VERSION} REQUIRED COMPONENTS gio gio-unix gobje
@@ -197,7 +221,10 @@ endif ()
EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_INFIX)
EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_VERSION)
-if (WEBKITGTK_API_VERSION VERSION_EQUAL "4.1")
- CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 21 7 21)
- CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 10 11 10)
+if (WEBKITGTK_API_VERSION VERSION_EQUAL "4.0")
+ CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 112 0 75)
+ CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 47 0 29)
+elseif (WEBKITGTK_API_VERSION VERSION_EQUAL "4.1")
+ CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 20 0 20)
+ CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 10 0 10)
CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 21 8 21)
CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 10 12 10)
elseif (WEBKITGTK_API_VERSION VERSION_EQUAL "6.0")
CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 20 7 16)
CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 8 11 7)
diff --git a/Source/cmake/WebKitFeatures.cmake b/Source/cmake/WebKitFeatures.cmake
index d4046bf679b2..821eed4b9eaf 100644
--- a/Source/cmake/WebKitFeatures.cmake
@ -2999,7 +2995,7 @@ index b60b425a4c03..699acbe7fabb 100644
#endif
diff --git a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp b/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp
index bfb6dd1c95fa..3acc7a129c21 100644
index 73a0cf635932..d2c2fda5f8c2 100644
--- a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp
+++ b/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp
@@ -21,6 +21,7 @@
@ -3010,7 +3006,7 @@ index bfb6dd1c95fa..3acc7a129c21 100644
#include <glib/gstdio.h>
#include <wtf/glib/GRefPtr.h>
#include <wtf/glib/GSpanExtras.h>
@@ -2246,7 +2247,11 @@ static void testWebViewLoadAlternateHTMLFromPageWithCSP(WebViewTest* test, gcons
@@ -2250,7 +2251,11 @@ static void testWebViewLoadAlternateHTMLFromPageWithCSP(WebViewTest* test, gcons
g_assert_no_error(error.get());
}
@ -3174,5 +3170,5 @@ index a0ab5439a86d..1e80c652dbc0 100644
RefPtr<WorkQueue> m_queue;
};
--
2.53.0
2.54.0

View File

@ -1,2 +1,2 @@
SHA512 (webkitgtk-2.52.3.tar.xz) = 8007688e4eb5b465a6f50e05e89858f970f7bbaed45844b8f97175de1fb24e41e6d88f4f6b6299d5ae2ad4e19483da371ac16257d787626da29de7551fbd2a3c
SHA512 (webkitgtk-2.52.3.tar.xz.asc) = cb7f6dc0e2d65c763988e9a18c48ee6810d60a8d2351912bdd33358dcd2d46b994ba34f85c6f8315a34d5b5cb78bd2f0dcb78d076af58e657d1817fdd56f005d
SHA512 (webkitgtk-2.52.4.tar.xz) = 0500660199cc00477d4c89b513a4ac772593ea5c490d6ebc97c693761bacd024c80c75df7e826cd1a7c292206d4ab0da2b0d91d0a4790069e575fa58bba7be02
SHA512 (webkitgtk-2.52.4.tar.xz.asc) = 8d0c7efcdffd67312ce049e10ebe0e0cae914ee53cab6356919b2a70682587f53076abc45a01c2a5bcfb687d9d47a08c12888643134bca8e0ccc889277190b18

View File

@ -6,7 +6,7 @@
cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkit2gtk3
Version: 2.52.3
Version: 2.52.4
Release: 1%{?dist}
Summary: GTK Web content engine library
@ -48,14 +48,18 @@ Patch306: g-ir-scanner-nonfatal.patch
## Upstream patches to remove, hopefully after next update
##
# https://github.com/WebKit/WebKit/pull/58096
Patch400: aarch64-build.patch
# https://bugs.webkit.org/show_bug.cgi?id=312677
Patch: build.patch
# *** FRAGILE ***
# If the build fails due to undefined reference to an atomic function, then
# ensure the GCC toolset version here matches the version in the buildroot.
BuildRequires: gcc-toolset-15-libatomic-devel
BuildRequires: bison
BuildRequires: clang
BuildRequires: cmake
BuildRequires: flex
BuildRequires: gcc-toolset-14-libatomic-devel
BuildRequires: gettext
BuildRequires: git
BuildRequires: gnupg2
@ -317,6 +321,9 @@ export NINJA_STATUS="[%f/%t][%e] "
%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir
%changelog
* Wed Jun 10 2026 Michael Catanzaro <mcatanzaro@redhat.com> - 2.52.4-1
- Update to 2.52.4
* Wed Apr 22 2026 Michael Catanzaro <mcatanzaro@redhat.com> - 2.52.3-1
- Update to 2.52.3