+++ /dev/null
-From 7999ecd5ee4ea3123f7e75634d2bc57f57ca7070 Mon Sep 17 00:00:00 2001
-From: Justin Michaud <jmichaud@igalia.com>
-Date: Wed, 6 Aug 2025 21:14:26 +0300
-Subject: [PATCH] REGRESSION(2.48.5): [WPE][GTK] Does not compile on ARMv7
- https://bugs.webkit.org/show_bug.cgi?id=296921
-
-Unreviewed build fix.
-
-* Source/JavaScriptCore/llint/WebAssembly.asm: Replace addq with addp
-  for sp on armv7
-
-Canonical link: https://commits.webkit.org/290945.344@webkitglib/2.48
-
-Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/7999ecd5ee4ea3123f7e75634d2bc57f57ca7070]
-Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
----
- Source/JavaScriptCore/llint/WebAssembly.asm | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Source/JavaScriptCore/llint/WebAssembly.asm b/Source/JavaScriptCore/llint/WebAssembly.asm
-index 1ac3e2accf3c..bd9041404eb1 100644
---- a/Source/JavaScriptCore/llint/WebAssembly.asm
-+++ b/Source/JavaScriptCore/llint/WebAssembly.asm
-@@ -736,7 +736,7 @@ if JSVALUE64
-     storep memoryBase, Callee[cfr]
- else
-     loadp [sp], ws0
--    addq 2 * SlotSize, sp
-+    addp 2 * SlotSize, sp
-     storep ws0, Callee[cfr]
- end
- 
 
--- /dev/null
+From 820e4bb46d7e72ba2b14b15819166919c2e81205 Mon Sep 17 00:00:00 2001
+From: Adrian Perez de Castro <aperez@igalia.com>
+Date: Wed, 15 Oct 2025 00:58:59 +0300
+Subject: [PATCH] [libpas] Build fails with libc implementations that lack
+ execinfo.h https://bugs.webkit.org/show_bug.cgi?id=300701
+
+Reviewed by NOBODY (OOPS!).
+
+Change guards to use backtrace() and execinfo.h on Linux only when using
+glibc as the C library. The PlayStation and Windows cases no longer need
+to be matched, as they are neither Linux nor Darwin, both of which are now
+explicitly listed. The Android check is kept as it was.
+
+* Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c:
+* Source/bmalloc/libpas/src/test/PGMTests.cpp:
+(addPGMTests):
+
+
+Fixes the following error in OE, when compiled with musl:
+
+| ${UNPACKDIR}/webkitgtk-2.50.0/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c:52:10: fatal error: execinfo.h: No such file or directory
+|    52 | #include <execinfo.h>
+
+
+Upstream-Status: Backport [https://github.com/WebKit/WebKit/pull/52300]
+Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
+
+---
+ .../pas_probabilistic_guard_malloc_allocator.c      |  4 ++--
+ Source/bmalloc/libpas/src/test/PGMTests.cpp         | 13 ++++++-------
+ 2 files changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c b/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c
+index ff3adefa7dcc..58ec32eb4fed 100644
+--- a/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c
++++ b/Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c
+@@ -43,8 +43,8 @@
+ #include <unistd.h>
+ #endif
+ 
+-/* PlayStation does not currently support the backtrace API. Android API versions < 33 don't, either. Windows does not either. */
+-#if !PAS_PLATFORM(PLAYSTATION) && (!PAS_OS(ANDROID) || __ANDROID_API__ >= 33) && !PAS_OS(WINDOWS)
++/* PlayStation does not currently support the backtrace API. Android API versions < 33 don't, either. Windows does not either. Linux only with GLibc and not uCLibc/Musl. */
++#if (PAS_OS(ANDROID) && __ANDROID_API__ >= 33) || PAS_OS(DARWIN) || (PAS_OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
+ #include <execinfo.h>
+ #else
+ size_t backtrace(void** buffer, size_t size)
+diff --git a/Source/bmalloc/libpas/src/test/PGMTests.cpp b/Source/bmalloc/libpas/src/test/PGMTests.cpp
+index 0432f46ba3b0..dfbf957a3421 100644
+--- a/Source/bmalloc/libpas/src/test/PGMTests.cpp
++++ b/Source/bmalloc/libpas/src/test/PGMTests.cpp
+@@ -43,9 +43,9 @@
+ #include "pas_report_crash.h"
+ #include "pas_root.h"
+ 
+-#if !PAS_PLATFORM(PLAYSTATION)
++#if (PAS_OS(ANDROID) && __ANDROID_API__ >= 33) || PAS_OS(DARWIN) || (PAS_OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
+ #include <execinfo.h>
+-#endif // !PAS_PLATFORM(PLAYSTATION)
++#endif
+ 
+ using namespace std;
+ 
+@@ -383,8 +383,7 @@ void testPGMMetadataVectorManagementFewDeallocations()
+     pas_heap_lock_unlock();
+ }
+ 
+-/* Backtrace API is currently not supported on PlayStation. */
+-#if !PAS_PLATFORM(PLAYSTATION)
++#if (PAS_OS(ANDROID) && __ANDROID_API__ >= 33) || PAS_OS(DARWIN) || (PAS_OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
+ void testPGMMetadataDoubleFreeBehavior()
+ {
+     pas_probabilistic_guard_malloc_initialize_pgm_as_enabled(1);
+@@ -583,7 +582,7 @@ void testPGMAllocMetadataOnly()
+         CHECK(!dealloc_metadata);
+     }
+ }
+-#endif // !PAS_PLATFORM(PLAYSTATION)
++#endif
+ 
+ } // anonymous namespace
+ 
+@@ -598,9 +597,9 @@ void addPGMTests()
+     ADD_TEST(testPGMMetadataVectorManagement());
+     ADD_TEST(testPGMMetadataVectorManagementFewDeallocations());
+     ADD_TEST(testPGMMetadataVectorManagementRehash());
+-#if !PAS_PLATFORM(PLAYSTATION)
++#if (PAS_OS(ANDROID) && __ANDROID_API__ >= 33) || PAS_OS(DARWIN) || (PAS_OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
+     ADD_TEST(testPGMMetadataDoubleFreeBehavior());
+     ADD_TEST(testPGMBmallocAllocationBacktrace());
+     ADD_TEST(testPGMAllocMetadataOnly());
+-#endif // !PAS_PLATFORM(PLAYSTATION)
++#endif
+ }
 
--- /dev/null
+From 0000000000000000000000000000000000000000 Fri Sep 19 11:55:30 2025 
+From: amaxcz <amaxcz@gmail.com>
+Date: Fri, 19 Sep 2025 11:55:30 +0000
+Subject: [PATCH] JSC: fix op_instanceof handler for 32-bit C-loop build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+JSC: fix op_instanceof handler for 32-bit C-loop build
+
+Fixes missing 'op_instanceof' handler in LowLevelInterpreter32_64.asm
+which breaks 32‑bit builds.
+
+* No ChangeLog (raw external patch).
+
+Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=299166]
+Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
+
+--- ./Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2025-08-08 11:17:51.552549400 +0200
++++ ./Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2025-09-19 12:34:26.253563496 +0200
+@@ -3445,4 +3445,97 @@
+ slowPathOp(mod)
+ 
+ llintSlowPathOp(has_structure_with_flags)
+-llintSlowPathOp(instanceof)
++
++llintOpWithMetadata(op_instanceof, OpInstanceof, macro (size, get, dispatch, metadata, return)
++
++    macro getAndLoadConstantOrVariable(fieldName, tagReg, payloadReg)
++        get(fieldName, t5)
++        loadConstantOrVariable(size, t5, tagReg, payloadReg)
++    end
++
++    macro isObject(field, falseLabel)
++        getAndLoadConstantOrVariable(field, t0, t1)
++        bineq t0, CellTag, falseLabel
++        bbneq JSCell::m_type[t1], ObjectType, falseLabel
++    end
++
++    macro overridesHasInstance(hasInstanceField, constructorField, trueLabel)
++        getAndLoadConstantOrVariable(hasInstanceField, t0, t1)
++        bineq t0, CellTag, trueLabel
++        loadp CodeBlock[cfr], t2
++        loadp CodeBlock::m_globalObject[t2], t2
++        loadp JSGlobalObject::m_functionProtoHasInstanceSymbolFunction[t2], t2
++        bpneq t1, t2, trueLabel
++
++        get(constructorField, t5)
++        loadConstantOrVariablePayload(size, t5, CellTag, t1, trueLabel)
++        btbz JSCell::m_flags[t1], ImplementsDefaultHasInstance, trueLabel
++    end
++
++    macro storeValue(tagReg, payloadReg, fieldName)
++        move tagReg, t0
++        move payloadReg, t1
++        get(fieldName, t5)
++        storei t0, TagOffset[cfr, t5, 8]
++        storei t1, PayloadOffset[cfr, t5, 8]
++    end
++
++.getHasInstance:
++    isObject(m_constructor, .throwStaticError)
++    get(m_constructor, t5)
++    metadata(t2, t6)
++    loadConstantOrVariablePayload(size, t5, CellTag, t3, .getHasInstanceSlow)
++    performGetByIDHelper(OpInstanceof, m_hasInstanceModeMetadata, m_hasInstanceValueProfile, .getHasInstanceSlow, size,
++        macro (resultTag, resultPayload)
++            storeValue(resultTag, resultPayload, m_hasInstanceOrPrototype)
++            jmp .getPrototype
++        end)
++    jmp .getPrototype
++
++.getHasInstanceSlow:
++    callSlowPath(_llint_slow_path_get_hasInstance_from_instanceof)
++    branchIfException(_llint_throw_from_slow_path_trampoline)
++    jmp .getPrototype
++
++.getHasInstanceInlinedGetterOSRReturnPoint:
++    # This path is taken when exiting to the LLInt from an inlined getter for Symbol.hasInstance.
++    getterSetterOSRExitReturnPoint(op_instanceof, size)
++    valueProfile(size, OpInstanceof, m_hasInstanceValueProfile, r1, r0, t2)
++    storeValue(r1, r0, m_hasInstanceOrPrototype)
++
++.getPrototype:
++    overridesHasInstance(m_hasInstanceOrPrototype, m_constructor, .instanceofCustom)
++    isObject(m_value, .false)
++    get(m_constructor, t5)
++    metadata(t2, t6)
++    loadConstantOrVariablePayload(size, t5, CellTag, t3, .getPrototypeSlow)
++    performGetByIDHelper(OpInstanceof, m_prototypeModeMetadata, m_prototypeValueProfile, .getPrototypeSlow, size,
++        macro (resultTag, resultPayload)
++            storeValue(resultTag, resultPayload, m_hasInstanceOrPrototype)
++            jmp .instanceof
++        end)
++    jmp .instanceof
++
++.getPrototypeSlow:
++    callSlowPath(_llint_slow_path_get_prototype_from_instanceof)
++    branchIfException(_llint_throw_from_slow_path_trampoline)
++    jmp .instanceof
++
++.instanceof:
++    callSlowPath(_llint_slow_path_instanceof_from_instanceof)
++    dispatch()
++
++.throwStaticError:
++    callSlowPath(_slow_path_throw_static_error_from_instanceof)
++    dispatch()
++
++.instanceofCustom:
++    callSlowPath(_slow_path_instanceof_custom_from_instanceof)
++    dispatch()
++
++.false:
++    get(m_dst, t5)
++    storei BooleanTag, TagOffset[cfr, t5, 8]
++    storei 0, PayloadOffset[cfr, t5, 8]
++    dispatch()
++end)
+
+-- 
+2.45.0
 
+++ /dev/null
-From 4602261fa44d6bbb4c3698c79e08a6a40a6edc5a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 12 Jan 2024 09:21:39 -0800
-Subject: [PATCH] clang/arm: Do not use MUST_TAIL_CALL
-
-This causes clang-17 to crash see [1]
-this code is new in webkit 2.42[2] thats why we do not see the crash in older webkit
-
-[1] https://github.com/llvm/llvm-project/issues/67767
-[2] https://github.com/WebKit/WebKit/commit/4d816460b765acd8aef90ab474615850b91ecc35
-
-Upstream-Status: Inappropriate [work around to avoid clang compiler crash]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Update context for webkitgtk 2.48.0.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- Source/WTF/wtf/Compiler.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h
-index 16e416d..68dd9a0 100644
---- a/Source/WTF/wtf/Compiler.h
-+++ b/Source/WTF/wtf/Compiler.h
-@@ -293,7 +293,7 @@
- #if COMPILER(CLANG)
- #if __SIZEOF_POINTER__ == 8
- #if !defined(MUST_TAIL_CALL) && defined(__cplusplus) && defined(__has_cpp_attribute)
--#if __has_cpp_attribute(clang::musttail) && !defined(__powerpc__) && !defined(_WIN32)
-+#if __has_cpp_attribute(clang::musttail) && !defined(__powerpc__) && !defined(_WIN32) && !defined(__arm__)
- #define MUST_TAIL_CALL [[clang::musttail]]
- #define HAVE_MUST_TAIL_CALL 1
- #endif
 
            file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
            file://reproducibility.patch \
            file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \
-           file://no-musttail-arm.patch \
            file://t6-not-declared.patch \
            file://sys_futex.patch \
            file://0001-Fix-build-errors-on-RISCV-https-bugs.webkit.org-show.patch \
            file://fix-ftbfs-riscv64.patch \
-           file://fix-armv7-compilation.patch \
+           file://fix-musl-compilation.patch \
+           file://fix_op_instanceof_handler_for_32-bit_C-loop_build.patch \
            "
-SRC_URI[sha256sum] = "bb64ed9d1cfd58e8b5e89ccad71dd31adfed56336bad7695031ad0b668e1987c"
+SRC_URI[sha256sum] = "e564b8099f9a3ae32409539b290bbd2ad084e99b6d22d4aac5e51e4554df8bc2"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen