From: Khem Raj Date: Tue, 3 Sep 2024 04:40:18 +0000 (-0700) Subject: webkitgtk: Fix build issues with clang-19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dcceba10865094e16129a489f323ff101e0e8429;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git webkitgtk: Fix build issues with clang-19 Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-issues-with-latest-Clang.patch b/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-issues-with-latest-Clang.patch new file mode 100644 index 00000000000..2be899fea84 --- /dev/null +++ b/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-issues-with-latest-Clang.patch @@ -0,0 +1,251 @@ +From 257ed304fb3e71d412568dcbed7129c145812fdf Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Sep 2024 21:38:12 -0700 +Subject: [PATCH] Fix build issues with latest Clang + https://bugs.webkit.org/show_bug.cgi?id=276198 rdar://130933637 + +Reviewed by Yusuke Suzuki. + +The use of the template keyword to reference template members without a template argument list was deprecated in the C++ standard. +e.g. `foo.template bar()` nows needs to be `foo.template bar<>()`. I ran into a different issue with `std::reference_wrapper` that +blocked me from going any further, which AFAICT is a bug on the Clang side. + +This also fixes a few other warnings that popped up while building with the new Clang denoted inline + +* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: +(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq): Clang didn't like the implicit static_cast(UINT32_MAX) so make it explicit with a static_assert no data was lost. +* Source/JavaScriptCore/jit/AssemblyHelpers.cpp: +(JSC::AssemblyHelpers::emitNonNullDecodeZeroExtendedStructureID): Clang didn't like the implicit static_cast(UINT32_MAX) so make it explicit with a static_assert no data was lost. +* Source/JavaScriptCore/llint/InPlaceInterpreter.cpp: +* Source/JavaScriptCore/llint/LLIntData.h: +(JSC::LLInt::getCodeFunctionPtr): +(JSC::LLInt::getWide16CodeFunctionPtr): +(JSC::LLInt::getWide32CodeFunctionPtr): +* Source/JavaScriptCore/parser/Nodes.h: Missing definition of ModuleScopeData added include. +* Source/JavaScriptCore/runtime/JSCast.h: +(JSC::JSCastingHelpers::inherits): +(JSC::jsDynamicCast): +* Source/ThirdParty/libwebrtc/Source/third_party/boringssl/src/crypto/bio/connect.c: +(conn_callback_ctrl): Had a warning about an incompatible function type. Seems like this is intentional suppressed the warning. +* Source/WTF/wtf/cf/TypeCastsCF.h: Had a warning about extra namespace qualification. I just moved it out of the namespace. That said, it feels like this warning shouldn't apply to macro expansions... +* Source/WebCore/PAL/ThirdParty/libavif/ThirdParty/dav1d/src/decode.c: +(decode_b): Had a warning about different types on the middle/right of a ternary expression. I just pushed the comparison inside the ternary. + +Canonical link: https://commits.webkit.org/280700@main + +Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/62b6e2db547e#diff-136d848d7c1b400da9b486916b67592b54e5abf7c66ac247697a93ae2fb743a9] +Signed-off-by: Khem Raj +--- + Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp | 6 ++++-- + Source/JavaScriptCore/jit/AssemblyHelpers.cpp | 6 ++++-- + .../JavaScriptCore/llint/InPlaceInterpreter.cpp | 16 ++++++++-------- + Source/JavaScriptCore/llint/LLIntData.h | 12 ++++++------ + Source/JavaScriptCore/llint/LLIntThunks.cpp | 2 +- + Source/JavaScriptCore/parser/Nodes.h | 4 ++-- + Source/JavaScriptCore/runtime/JSCast.h | 4 ++-- + 7 files changed, 27 insertions(+), 23 deletions(-) + +diff --git a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp +index 42a4eae7..dd987726 100644 +--- a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp ++++ b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp +@@ -22930,8 +22930,10 @@ IGNORE_CLANG_WARNINGS_END + return m_out.shl(m_out.zeroExtPtr(structureID), m_out.constIntPtr(StructureID::encodeShiftAmount)); + #else + LValue maskedStructureID = structureID; +- if constexpr (structureHeapAddressSize < 4 * GB) +- maskedStructureID = m_out.bitAnd(structureID, m_out.constInt32(StructureID::structureIDMask)); ++ if constexpr (structureHeapAddressSize < 4 * GB) { ++ static_assert(static_cast(StructureID::structureIDMask) == StructureID::structureIDMask); ++ maskedStructureID = m_out.bitAnd(structureID, m_out.constInt32(static_cast(StructureID::structureIDMask))); ++ } + return m_out.bitOr(m_out.constIntPtr(startOfStructureHeap()), m_out.zeroExtPtr(maskedStructureID)); + #endif + } +diff --git a/Source/JavaScriptCore/jit/AssemblyHelpers.cpp b/Source/JavaScriptCore/jit/AssemblyHelpers.cpp +index c939d27a..982dc46f 100644 +--- a/Source/JavaScriptCore/jit/AssemblyHelpers.cpp ++++ b/Source/JavaScriptCore/jit/AssemblyHelpers.cpp +@@ -677,8 +677,10 @@ void AssemblyHelpers::emitNonNullDecodeZeroExtendedStructureID(RegisterID source + if constexpr (structureHeapAddressSize >= 4 * GB) { + ASSERT(structureHeapAddressSize == 4 * GB); + move(source, dest); +- } else +- and32(TrustedImm32(StructureID::structureIDMask), source, dest); ++ } else { ++ static_assert(static_cast(StructureID::structureIDMask) == StructureID::structureIDMask); ++ and32(TrustedImm32(static_cast(StructureID::structureIDMask)), source, dest); ++ } + or64(TrustedImm64(startOfStructureHeap()), dest); + #else // not CPU(ADDRESS64) + move(source, dest); +diff --git a/Source/JavaScriptCore/llint/InPlaceInterpreter.cpp b/Source/JavaScriptCore/llint/InPlaceInterpreter.cpp +index b9442b4f..a1d5a6c4 100644 +--- a/Source/JavaScriptCore/llint/InPlaceInterpreter.cpp ++++ b/Source/JavaScriptCore/llint/InPlaceInterpreter.cpp +@@ -43,8 +43,8 @@ namespace JSC { namespace IPInt { + do { \ + void* base = reinterpret_cast(ipint_unreachable_validate); \ + void* ptr = reinterpret_cast(ipint_ ## name ## _validate); \ +- void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr(); \ +- void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); \ ++ void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr<>(); \ ++ void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); \ + RELEASE_ASSERT_WITH_MESSAGE((char*)(untaggedPtr) - (char*)(untaggedBase) == opcode * 256, #name); \ + } while (false); + +@@ -52,8 +52,8 @@ do { \ + do { \ + void* base = reinterpret_cast(ipint_i32_trunc_sat_f32_s_validate); \ + void* ptr = reinterpret_cast(ipint_ ## name ## _validate); \ +- void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr(); \ +- void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); \ ++ void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr<>(); \ ++ void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); \ + RELEASE_ASSERT_WITH_MESSAGE((char*)(untaggedPtr) - (char*)(untaggedBase) == opcode * 256, #name); \ + } while (false); + +@@ -61,8 +61,8 @@ do { \ + do { \ + void* base = reinterpret_cast(ipint_simd_v128_load_mem_validate); \ + void* ptr = reinterpret_cast(ipint_ ## name ## _validate); \ +- void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr(); \ +- void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); \ ++ void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr<>(); \ ++ void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); \ + RELEASE_ASSERT_WITH_MESSAGE((char*)(untaggedPtr) - (char*)(untaggedBase) == opcode * 256, #name); \ + } while (false); + +@@ -70,8 +70,8 @@ do { \ + do { \ + void* base = reinterpret_cast(ipint_memory_atomic_notify_validate); \ + void* ptr = reinterpret_cast(ipint_ ## name ## _validate); \ +- void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr(); \ +- void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); \ ++ void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr<>(); \ ++ void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); \ + RELEASE_ASSERT_WITH_MESSAGE((char*)(untaggedPtr) - (char*)(untaggedBase) == opcode * 256, #name); \ + } while (false); + +diff --git a/Source/JavaScriptCore/llint/LLIntData.h b/Source/JavaScriptCore/llint/LLIntData.h +index 97de867e..87a2971d 100644 +--- a/Source/JavaScriptCore/llint/LLIntData.h ++++ b/Source/JavaScriptCore/llint/LLIntData.h +@@ -217,7 +217,7 @@ ALWAYS_INLINE LLIntCode getCodeFunctionPtr(OpcodeID opcodeID) + #if COMPILER(MSVC) + return reinterpret_cast(getCodePtr(opcodeID).taggedPtr()); + #else +- return reinterpret_cast(getCodePtr(opcodeID).template taggedPtr()); ++ return reinterpret_cast(getCodePtr(opcodeID).template taggedPtr<>()); + #endif + } + +@@ -227,7 +227,7 @@ ALWAYS_INLINE LLIntCode getWide16CodeFunctionPtr(OpcodeID opcodeID) + #if COMPILER(MSVC) + return reinterpret_cast(getWide16CodePtr(opcodeID).taggedPtr()); + #else +- return reinterpret_cast(getWide16CodePtr(opcodeID).template taggedPtr()); ++ return reinterpret_cast(getWide16CodePtr(opcodeID).template taggedPtr<>()); + #endif + } + +@@ -237,7 +237,7 @@ ALWAYS_INLINE LLIntCode getWide32CodeFunctionPtr(OpcodeID opcodeID) + #if COMPILER(MSVC) + return reinterpret_cast(getWide32CodePtr(opcodeID).taggedPtr()); + #else +- return reinterpret_cast(getWide32CodePtr(opcodeID).template taggedPtr()); ++ return reinterpret_cast(getWide32CodePtr(opcodeID).template taggedPtr<>()); + #endif + } + #else // not ENABLE(JIT) +@@ -361,7 +361,7 @@ ALWAYS_INLINE LLIntCode getCodeFunctionPtr(WasmOpcodeID opcodeID) + #if COMPILER(MSVC) + return reinterpret_cast(getCodePtr(opcodeID).taggedPtr()); + #else +- return reinterpret_cast(getCodePtr(opcodeID).template taggedPtr()); ++ return reinterpret_cast(getCodePtr(opcodeID).template taggedPtr<>()); + #endif + } + +@@ -371,7 +371,7 @@ ALWAYS_INLINE LLIntCode getWide16CodeFunctionPtr(WasmOpcodeID opcodeID) + #if COMPILER(MSVC) + return reinterpret_cast(getWide16CodePtr(opcodeID).taggedPtr()); + #else +- return reinterpret_cast(getWide16CodePtr(opcodeID).template taggedPtr()); ++ return reinterpret_cast(getWide16CodePtr(opcodeID).template taggedPtr<>()); + #endif + } + +@@ -381,7 +381,7 @@ ALWAYS_INLINE LLIntCode getWide32CodeFunctionPtr(WasmOpcodeID opcodeID) + #if COMPILER(MSVC) + return reinterpret_cast(getWide32CodePtr(opcodeID).taggedPtr()); + #else +- return reinterpret_cast(getWide32CodePtr(opcodeID).template taggedPtr()); ++ return reinterpret_cast(getWide32CodePtr(opcodeID).template taggedPtr<>()); + #endif + } + #else // not ENABLE(JIT) +diff --git a/Source/JavaScriptCore/llint/LLIntThunks.cpp b/Source/JavaScriptCore/llint/LLIntThunks.cpp +index 13269469..e41fa5b8 100644 +--- a/Source/JavaScriptCore/llint/LLIntThunks.cpp ++++ b/Source/JavaScriptCore/llint/LLIntThunks.cpp +@@ -227,7 +227,7 @@ ALWAYS_INLINE void* untaggedPtr(void* ptr) + #if COMPILER(MSVC) + return CodePtr::fromTaggedPtr(ptr).untaggedPtr(); + #else +- return CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); ++ return CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); + #endif + } + +diff --git a/Source/JavaScriptCore/parser/Nodes.h b/Source/JavaScriptCore/parser/Nodes.h +index 01af81b7..70b87088 100644 +--- a/Source/JavaScriptCore/parser/Nodes.h ++++ b/Source/JavaScriptCore/parser/Nodes.h +@@ -1,7 +1,7 @@ + /* + * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) + * Copyright (C) 2001 Peter Kelly (pmk@post.com) +- * Copyright (C) 2003-2019 Apple Inc. All rights reserved. ++ * Copyright (C) 2003-2024 Apple Inc. All rights reserved. + * Copyright (C) 2007 Cameron Zwarich (cwzwarich@uwaterloo.ca) + * Copyright (C) 2007 Maks Orlovich + * Copyright (C) 2007 Eric Seidel +@@ -29,6 +29,7 @@ + #include "ImplementationVisibility.h" + #include "JITCode.h" + #include "Label.h" ++#include "ModuleScopeData.h" + #include "ParserArena.h" + #include "ParserModes.h" + #include "ParserTokens.h" +@@ -49,7 +50,6 @@ namespace JSC { + class FunctionMetadataNode; + class FunctionParameters; + class ModuleAnalyzer; +- class ModuleScopeData; + class PropertyListNode; + class ReadModifyResolveNode; + class RegisterID; +diff --git a/Source/JavaScriptCore/runtime/JSCast.h b/Source/JavaScriptCore/runtime/JSCast.h +index a44b6e38..e5664a8b 100644 +--- a/Source/JavaScriptCore/runtime/JSCast.h ++++ b/Source/JavaScriptCore/runtime/JSCast.h +@@ -236,7 +236,7 @@ template + bool inherits(From* from) + { + using Dispatcher = InheritsTraits; +- return Dispatcher::template inherits(from); ++ return Dispatcher::template inherits<>(from); + } + + } // namespace JSCastingHelpers +@@ -245,7 +245,7 @@ template + To jsDynamicCast(From* from) + { + using Dispatcher = JSCastingHelpers::InheritsTraits::type>::type>; +- if (LIKELY(Dispatcher::template inherits(from))) ++ if (LIKELY(Dispatcher::template inherits<>(from))) + return static_cast(from); + return nullptr; + } diff --git a/meta/recipes-sato/webkit/webkitgtk_2.44.3.bb b/meta/recipes-sato/webkit/webkitgtk_2.44.3.bb index 90fb7a1d42e..00431407fa3 100644 --- a/meta/recipes-sato/webkit/webkitgtk_2.44.3.bb +++ b/meta/recipes-sato/webkit/webkitgtk_2.44.3.bb @@ -16,6 +16,7 @@ SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ file://no-musttail-arm.patch \ file://t6-not-declared.patch \ file://30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch \ + file://0001-Fix-build-issues-with-latest-Clang.patch \ " SRC_URI[sha256sum] = "dc82d042ecaca981a4852357c06e5235743319cf10a94cd36ad41b97883a0b54"