diff mbox series

[meta-oe,v2] webkitgtk3: fix compile failed on qemuarm

Message ID 20260326123227.2212954-1-hongxu.jia@windriver.com
State Under Review
Headers show
Series [meta-oe,v2] webkitgtk3: fix compile failed on qemuarm | expand

Commit Message

Hongxu Jia March 26, 2026, 12:32 p.m. UTC
$ echo 'MACHINE = "qemuarm"' >> conf/local.conf
$ bitbake webkitgtk3
...
| {standard input}:43622: Error: symbol `op_instanceof_return_location' is already defined
| {standard input}:43623: Error: symbol `.Lop_instanceof_return_location' is already defined
| {standard input}:44352: Error: symbol `op_instanceof_return_location_wide16' is already defined
| {standard input}:44353: Error: symbol `.Lop_instanceof_return_location_wide16' is already defined
| {standard input}:45090: Error: symbol `op_instanceof_return_location_wide32' is already defined
| {standard input}:45091: Error: symbol `.Lop_instanceof_return_location_wide32' is already defined
...

Drop 0001-Fix-32bit-arm.patch which conflicts with upstream solution [1]

[1] https://github.com/WebKit/WebKit/commit/fcaa289f6015595a638eb96b9f728eaaa7b13ab8

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 .../webkitgtk3/0001-Fix-32bit-arm.patch       | 128 ------------------
 .../webkitgtk/webkitgtk3_2.50.5.bb            |   1 -
 2 files changed, 129 deletions(-)
 delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-32bit-arm.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-32bit-arm.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-32bit-arm.patch
deleted file mode 100644
index fadef2a01b..0000000000
--- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-32bit-arm.patch
+++ /dev/null
@@ -1,128 +0,0 @@ 
-From 014b9dad4ec5c432410254c0d0cab7d20b1f31d7 Mon Sep 17 00:00:00 2001
-From: Jason Schonberg <schonm@gmail.com>
-Date: Mon, 29 Sep 2025 14:34:48 -0400
-Subject: [PATCH] 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
-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: Backport [https://bugs.webkit.org/show_bug.cgi?id=299166]
-
-Signed-off-by: Jason Schonberg <schonm@gmail.com>
----
- .../llint/LowLevelInterpreter32_64.asm        | 95 ++++++++++++++++++-
- 1 file changed, 94 insertions(+), 1 deletion(-)
-
-diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
-index 0d7c92bb..0b81cc1a 100644
---- a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
-+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
-@@ -3437,4 +3437,97 @@ slowPathOp(enumerator_has_own_property)
- 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)
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.5.bb b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.5.bb
index 9be30506d6..e6007a6667 100644
--- a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.5.bb
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.50.5.bb
@@ -21,7 +21,6 @@  SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \
            file://0001-Fix-build-errors-on-RISCV-https-bugs.webkit.org-show.patch \
            file://fix-ftbfs-riscv64.patch \
            file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \
-           file://0001-Fix-32bit-arm.patch \
            "
 SRC_URI[sha256sum] = "8737631bac3e9c7ad3e5208f9370e076c09d9c45b39980021ce54edadcc6f94f"