diff mbox series

[2/2] webkitgtk: Fix build issues with clang-19

Message ID 20240903044018.3470887-2-raj.khem@gmail.com
State Accepted, archived
Commit dcceba10865094e16129a489f323ff101e0e8429
Headers show
Series [1/2] kea: Replace Name::NameString with vector of uint8_t | expand

Commit Message

Khem Raj Sept. 3, 2024, 4:40 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...1-Fix-build-issues-with-latest-Clang.patch | 251 ++++++++++++++++++
 meta/recipes-sato/webkit/webkitgtk_2.44.3.bb  |   1 +
 2 files changed, 252 insertions(+)
 create mode 100644 meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-issues-with-latest-Clang.patch

Comments

patchtest@automation.yoctoproject.org Sept. 3, 2024, 4:50 a.m. UTC | #1
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch /home/patchtest/share/mboxes/2-2-webkitgtk-Fix-build-issues-with-clang-19.patch

FAIL: test commit message presence: Please include a commit message on your patch explaining the change (test_mbox.TestMbox.test_commit_message_presence)

PASS: pretest src uri left files (test_metadata.TestMetadata.pretest_src_uri_left_files)
PASS: test CVE check ignore (test_metadata.TestMetadata.test_cve_check_ignore)
PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Signed-off-by presence (test_patch.TestPatch.test_signed_off_by_presence)
PASS: test Upstream-Status presence (test_patch.TestPatch.test_upstream_status_presence_format)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test lic files chksum modified not mentioned (test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test src uri left files (test_metadata.TestMetadata.test_src_uri_left_files)

SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum presence: No added recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test (test_metadata.TestMetadata.test_license_presence)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test summary presence: No added recipes, skipping test (test_metadata.TestMetadata.test_summary_presence)
SKIP: test target mailing list: Series merged, no reason to check other mailing lists (test_mbox.TestMbox.test_target_mailing_list)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
diff mbox series

Patch

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 <raj.khem@gmail.com>
+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<int32_t>(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<int32_t>(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 <raj.khem@gmail.com>
+---
+ 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<uint32_t>(StructureID::structureIDMask) == StructureID::structureIDMask);
++            maskedStructureID = m_out.bitAnd(structureID, m_out.constInt32(static_cast<uint32_t>(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<uint32_t>(StructureID::structureIDMask) == StructureID::structureIDMask);
++        and32(TrustedImm32(static_cast<uint32_t>(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<void*>(ipint_unreachable_validate); \
+     void* ptr = reinterpret_cast<void*>(ipint_ ## name ## _validate); \
+-    void* untaggedBase = CodePtr<CFunctionPtrTag>::fromTaggedPtr(base).template untaggedPtr(); \
+-    void* untaggedPtr = CodePtr<CFunctionPtrTag>::fromTaggedPtr(ptr).template untaggedPtr(); \
++    void* untaggedBase = CodePtr<CFunctionPtrTag>::fromTaggedPtr(base).template untaggedPtr<>(); \
++    void* untaggedPtr = CodePtr<CFunctionPtrTag>::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<void*>(ipint_i32_trunc_sat_f32_s_validate); \
+     void* ptr = reinterpret_cast<void*>(ipint_ ## name ## _validate); \
+-    void* untaggedBase = CodePtr<CFunctionPtrTag>::fromTaggedPtr(base).template untaggedPtr(); \
+-    void* untaggedPtr = CodePtr<CFunctionPtrTag>::fromTaggedPtr(ptr).template untaggedPtr(); \
++    void* untaggedBase = CodePtr<CFunctionPtrTag>::fromTaggedPtr(base).template untaggedPtr<>(); \
++    void* untaggedPtr = CodePtr<CFunctionPtrTag>::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<void*>(ipint_simd_v128_load_mem_validate); \
+     void* ptr = reinterpret_cast<void*>(ipint_ ## name ## _validate); \
+-    void* untaggedBase = CodePtr<CFunctionPtrTag>::fromTaggedPtr(base).template untaggedPtr(); \
+-    void* untaggedPtr = CodePtr<CFunctionPtrTag>::fromTaggedPtr(ptr).template untaggedPtr(); \
++    void* untaggedBase = CodePtr<CFunctionPtrTag>::fromTaggedPtr(base).template untaggedPtr<>(); \
++    void* untaggedPtr = CodePtr<CFunctionPtrTag>::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<void*>(ipint_memory_atomic_notify_validate); \
+     void* ptr = reinterpret_cast<void*>(ipint_ ## name ## _validate); \
+-    void* untaggedBase = CodePtr<CFunctionPtrTag>::fromTaggedPtr(base).template untaggedPtr(); \
+-    void* untaggedPtr = CodePtr<CFunctionPtrTag>::fromTaggedPtr(ptr).template untaggedPtr(); \
++    void* untaggedBase = CodePtr<CFunctionPtrTag>::fromTaggedPtr(base).template untaggedPtr<>(); \
++    void* untaggedPtr = CodePtr<CFunctionPtrTag>::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<LLIntCode>(getCodePtr<tag>(opcodeID).taggedPtr());
+ #else
+-    return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).template taggedPtr());
++    return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).template taggedPtr<>());
+ #endif
+ }
+ 
+@@ -227,7 +227,7 @@ ALWAYS_INLINE LLIntCode getWide16CodeFunctionPtr(OpcodeID opcodeID)
+ #if COMPILER(MSVC)
+     return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).taggedPtr());
+ #else
+-    return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).template taggedPtr());
++    return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).template taggedPtr<>());
+ #endif
+ }
+ 
+@@ -237,7 +237,7 @@ ALWAYS_INLINE LLIntCode getWide32CodeFunctionPtr(OpcodeID opcodeID)
+ #if COMPILER(MSVC)
+     return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).taggedPtr());
+ #else
+-    return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).template taggedPtr());
++    return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).template taggedPtr<>());
+ #endif
+ }
+ #else // not ENABLE(JIT)
+@@ -361,7 +361,7 @@ ALWAYS_INLINE LLIntCode getCodeFunctionPtr(WasmOpcodeID opcodeID)
+ #if COMPILER(MSVC)
+     return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).taggedPtr());
+ #else
+-    return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).template taggedPtr());
++    return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).template taggedPtr<>());
+ #endif
+ }
+ 
+@@ -371,7 +371,7 @@ ALWAYS_INLINE LLIntCode getWide16CodeFunctionPtr(WasmOpcodeID opcodeID)
+ #if COMPILER(MSVC)
+     return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).taggedPtr());
+ #else
+-    return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).template taggedPtr());
++    return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).template taggedPtr<>());
+ #endif
+ }
+ 
+@@ -381,7 +381,7 @@ ALWAYS_INLINE LLIntCode getWide32CodeFunctionPtr(WasmOpcodeID opcodeID)
+ #if COMPILER(MSVC)
+     return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).taggedPtr());
+ #else
+-    return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).template taggedPtr());
++    return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(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<CFunctionPtrTag>::fromTaggedPtr(ptr).untaggedPtr();
+ #else
+-        return CodePtr<CFunctionPtrTag>::fromTaggedPtr(ptr).template untaggedPtr();
++        return CodePtr<CFunctionPtrTag>::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 <eric@webkit.org>
+@@ -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<typename Target, typename From>
+ bool inherits(From* from)
+ {
+     using Dispatcher = InheritsTraits<Target>;
+-    return Dispatcher::template inherits(from);
++    return Dispatcher::template inherits<>(from);
+ }
+ 
+ } // namespace JSCastingHelpers
+@@ -245,7 +245,7 @@ template<typename To, typename From>
+ To jsDynamicCast(From* from)
+ {
+     using Dispatcher = JSCastingHelpers::InheritsTraits<typename std::remove_cv<typename std::remove_pointer<To>::type>::type>;
+-    if (LIKELY(Dispatcher::template inherits(from)))
++    if (LIKELY(Dispatcher::template inherits<>(from)))
+         return static_cast<To>(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"