mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
webkitgtk: Fix build issues with clang-19
(From OE-Core rev: dcceba10865094e16129a489f323ff101e0e8429) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user