From 0662fc89e4b063d82287a58f9450ca8fe26b950c Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Thu, 26 Mar 2026 20:32:27 +0800 Subject: [PATCH] webkitgtk3: fix compile failed on qemuarm $ 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 Signed-off-by: Khem Raj --- .../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 --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 -Date: Mon, 29 Sep 2025 14:34:48 -0400 -Subject: [PATCH] From: amaxcz 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 ---- - .../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"