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:
parent
32c010cd2e
commit
ea7959e370
@ -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
46
build.patch
Normal 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
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
4
sources
4
sources
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user