| Message ID | 20240918184731.54155-1-f_l_k@t-online.de |
|---|---|
| State | Under Review |
| Headers | show |
| Series | [meta-oe] webkitgtk3: update 2.44.3 -> 2.46.0 | expand |
it fails to compile on riscv64 and perhaps this commit is to blame https://github.com/WebKit/WebKit/commit/e41732697b999464e80dc3fe1c95900c6c438888 On Wed, Sep 18, 2024 at 11:46 AM Markus Volk via lists.openembedded.org <f_l_k=t-online.de@lists.openembedded.org> wrote: > > - drop backport patches > - import 0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch from oe-core > - set USE_SYSTEM_SYSPROF_CAPTURE=OFF to avoid sysprof dependency > > Highlights of the WebKitGTK 2.46.0 release > > Use Skia instead of cairo for 2D rendering and enable GPU rendering by default. > Enable offscreen canvas by default. > Add support for system tracing with Sysprof. > Implement printing using the Print portal. > Add new API to load settings from a config file. > Add a new setting to enable or disable the 2D canvas acceleration (enabled by default). > Undeprecate console messages API and make it available in 6.0 API. > > For more details about all the changes included in WebKitGTK 2.46 see the NEWS file that is included in the tarball. > > Signed-off-by: Markus Volk <f_l_k@t-online.de> > --- > ...able-to-control-macro-__PAS_ALWAYS_I.patch | 73 ++++++ > ...1-Fix-build-issues-with-latest-Clang.patch | 237 ------------------ > ...d5e22213fdaca2a29ec3400c927d710a37a8.patch | 65 ----- > ...kitgtk3_2.44.3.bb => webkitgtk3_2.46.0.bb} | 14 +- > 4 files changed, 80 insertions(+), 309 deletions(-) > create mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch > delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-build-issues-with-latest-Clang.patch > delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch > rename meta-oe/recipes-support/webkitgtk/{webkitgtk3_2.44.3.bb => webkitgtk3_2.46.0.bb} (94%) > > diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch > new file mode 100644 > index 000000000..a19008a41 > --- /dev/null > +++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch > @@ -0,0 +1,73 @@ > +From 99a21305ae683a216e9299e5dbdd763190a8cfe3 Mon Sep 17 00:00:00 2001 > +From: Kai Kang <kai.kang@windriver.com> > +Date: Fri, 11 Aug 2023 14:20:48 +0800 > +Subject: [PATCH] Add a variable to control macro > + __PAS_ALWAYS_INLINE_BUT_NOT_INLINE > + https://bugs.webkit.org/show_bug.cgi?id=260065 > + > +Reviewed by NOBODY (OOPS!). > + > +It fails to compile webkitgtk with option `-Og` of gcc/g++: > + > +| In file included from Source/bmalloc/libpas/src/libpas/pas_heap_page_provider.h:30, > +| from Source/bmalloc/libpas/src/libpas/pas_bootstrap_heap_page_provider.h:29, > +| from Source/bmalloc/libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.h:29, > +| from Source/bmalloc/libpas/src/libpas/pas_basic_heap_page_caches.h:29, > +| from Source/bmalloc/libpas/src/libpas/pas_heap_config_utils.h:32, > +| from Source/bmalloc/libpas/src/libpas/bmalloc_heap_config.h:34, > +| from Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h:34, > +| from Source/bmalloc/bmalloc/bmalloc.h:39, > +| from Source/bmalloc/bmalloc/bmalloc.cpp:26: > +| In function 'pas_allocation_result pas_local_allocator_try_allocate(pas_local_allocator*, size_t, size_t, pas_heap_config, pas_allocator_counts*, pas_allocation_result_filter)', > +| inlined from 'pas_allocation_result pas_try_allocate_common_impl_fast(pas_heap_config, pas_allocator_counts*, pas_allocation_result_filter, pas_local_allocator*, size_t, size_t)' at webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/pas_try_allocate_common.h:85:46, > +| inlined from 'pas_allocation_result bmalloc_try_allocate_with_alignment_impl_impl_fast(pas_local_allocator*, size_t, size_t)' at webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h:59:1, > +| inlined from 'pas_allocation_result pas_try_allocate_intrinsic_impl_casual_case(__pas_heap*, size_t, size_t, pas_intrinsic_heap_support*, pas_heap_config, pas_try_allocate_common_fast, pas_try_allocate_common_slow, pas_intrinsic_heap_designation_mode)' at webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/pas_try_allocate_intrinsic.h:167:44, > +| inlined from 'pas_allocation_result bmalloc_try_allocate_with_alignment_impl_casual_case(size_t, size_t)' at webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h:59:1: > +| webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/pas_allocation_result.h:76:1: error: inlining failed in call to 'always_inline' 'pas_allocation_result pas_allocation_result_identity(pas_allocation_result)': function not considered for inlining > +| 76 | pas_allocation_result_identity(pas_allocation_result result) > +| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +Add an variable `WEBKIT_NO_INLINE_HINTS` to control macro > +__PAS_ALWAYS_INLINE_BUT_NOT_INLINE whether includes function attribute > +`always_inline`. It could set the variable to make compilation pass when > +gcc option `-Og` is used. > + > +* Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h: > +* Source/cmake/WebKitCompilerFlags.cmake: > + > +Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/16601] > + > +Signed-off-by: Kai Kang <kai.kang@windriver.com> > +--- > + Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h | 2 +- > + Source/cmake/WebKitCompilerFlags.cmake | 7 +++++++ > + 2 files changed, 8 insertions(+), 1 deletion(-) > + > +diff --git a/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h b/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h > +index 5d5fb38c..a554f700 100644 > +--- a/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h > ++++ b/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h > +@@ -44,7 +44,7 @@ __PAS_BEGIN_EXTERN_C; > + #define __SUSPICIOUS__ > + #define __BROKEN__ > + > +-#ifdef __OPTIMIZE__ > ++#if defined(__OPTIMIZE__) && !defined(WEBKIT_NO_INLINE_HINTS) > + #define __PAS_ALWAYS_INLINE_BUT_NOT_INLINE __attribute__((__always_inline__)) > + #else > + #define __PAS_ALWAYS_INLINE_BUT_NOT_INLINE > +diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake > +index 0732785e..4879ec40 100644 > +--- a/Source/cmake/WebKitCompilerFlags.cmake > ++++ b/Source/cmake/WebKitCompilerFlags.cmake > +@@ -452,3 +452,10 @@ endif () > + > + # FIXME: Enable pre-compiled headers for all ports <https://webkit.org/b/139438> > + set(CMAKE_DISABLE_PRECOMPILE_HEADERS ON) > ++ > ++# It fails to compile with `gcc -Og` > ++set(WEBKIT_NO_INLINE_HINTS OFF CACHE BOOL "Disable funtion attribute always_inline for WebKit") > ++ > ++if (WEBKIT_NO_INLINE_HINTS) > ++ add_definitions(-DWEBKIT_NO_INLINE_HINTS) > ++endif () > diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-build-issues-with-latest-Clang.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-build-issues-with-latest-Clang.patch > deleted file mode 100644 > index 6ef9835c2..000000000 > --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-build-issues-with-latest-Clang.patch > +++ /dev/null > @@ -1,237 +0,0 @@ > -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(-) > - > ---- 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 > - } > ---- a/Source/JavaScriptCore/jit/AssemblyHelpers.cpp > -+++ b/Source/JavaScriptCore/jit/AssemblyHelpers.cpp > -@@ -677,8 +677,10 @@ void AssemblyHelpers::emitNonNullDecodeZ > - 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); > ---- 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); > - > ---- a/Source/JavaScriptCore/llint/LLIntData.h > -+++ b/Source/JavaScriptCore/llint/LLIntData.h > -@@ -217,7 +217,7 @@ ALWAYS_INLINE LLIntCode getCodeFunctionP > - #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 getWide16CodeFun > - #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 getWide32CodeFun > - #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 getCodeFunctionP > - #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 getWide16CodeFun > - #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 getWide32CodeFun > - #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) > ---- a/Source/JavaScriptCore/llint/LLIntThunks.cpp > -+++ b/Source/JavaScriptCore/llint/LLIntThunks.cpp > -@@ -227,7 +227,7 @@ ALWAYS_INLINE void* untaggedPtr(void* pt > - #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 > - } > - > ---- 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; > ---- 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-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch > deleted file mode 100644 > index b2e40a88c..000000000 > --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch > +++ /dev/null > @@ -1,65 +0,0 @@ > -From 1523e00a2a76e285262c8aa3721b5d99f3f2d612 Mon Sep 17 00:00:00 2001 > -From: Thomas Devoogdt <thomas.devoogdt@barco.com> > -Date: Mon, 16 Jan 2023 17:03:30 +0100 > -Subject: [PATCH] REGRESSION(257865@main): B3Validate.cpp: fix > - > - !ENABLE(WEBASSEMBLY_B3JIT) > - > -https://bugs.webkit.org/show_bug.cgi?id=250681 > - > -Reviewed by NOBODY (OOPS!). > - > -WasmTypeDefinition.h isn't included if not ENABLE(WEBASSEMBLY_B3JIT). > -Also, toB3Type and simdScalarType are not defined if it is included. > - > -Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com> > - > -Upstream-Status: Inappropriate [https://bugs.launchpad.net/ubuntu/+source/webkit2gtk/+bug/2008798] > ---- > - Source/JavaScriptCore/b3/B3Validate.cpp | 12 +++++++++--- > - 1 file changed, 9 insertions(+), 3 deletions(-) > - > -diff --git a/Source/JavaScriptCore/b3/B3Validate.cpp b/Source/JavaScriptCore/b3/B3Validate.cpp > -index eaaa3749..1d089783 100644 > ---- a/Source/JavaScriptCore/b3/B3Validate.cpp > -+++ b/Source/JavaScriptCore/b3/B3Validate.cpp > -@@ -47,6 +47,12 @@ > - #include <wtf/StringPrintStream.h> > - #include <wtf/text/CString.h> > - > -+#if ENABLE(WEBASSEMBLY) && ENABLE(WEBASSEMBLY_B3JIT) > -+#define simdScalarTypeToB3Type(type) toB3Type(Wasm::simdScalarType(type)) > -+#else > -+#define simdScalarTypeToB3Type(type) B3::Type() > -+#endif > -+ > - namespace JSC { namespace B3 { > - > - namespace { > -@@ -454,7 +460,7 @@ public: > - case VectorExtractLane: > - VALIDATE(!value->kind().hasExtraBits(), ("At ", *value)); > - VALIDATE(value->numChildren() == 1, ("At ", *value)); > -- VALIDATE(value->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); > -+ VALIDATE(value->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value)); > - VALIDATE(value->child(0)->type() == V128, ("At ", *value)); > - break; > - case VectorReplaceLane: > -@@ -462,7 +468,7 @@ public: > - VALIDATE(value->numChildren() == 2, ("At ", *value)); > - VALIDATE(value->type() == V128, ("At ", *value)); > - VALIDATE(value->child(0)->type() == V128, ("At ", *value)); > -- VALIDATE(value->child(1)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); > -+ VALIDATE(value->child(1)->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value)); > - break; > - case VectorDupElement: > - VALIDATE(!value->kind().hasExtraBits(), ("At ", *value)); > -@@ -484,7 +490,7 @@ public: > - VALIDATE(!value->kind().hasExtraBits(), ("At ", *value)); > - VALIDATE(value->numChildren() == 1, ("At ", *value)); > - VALIDATE(value->type() == V128, ("At ", *value)); > -- VALIDATE(value->child(0)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); > -+ VALIDATE(value->child(0)->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value)); > - break; > - > - case VectorPopcnt: > diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.46.0.bb > similarity index 94% > rename from meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb > rename to meta-oe/recipes-support/webkitgtk/webkitgtk3_2.46.0.bb > index 9493d8642..0e3702615 100644 > --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb > +++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.46.0.bb > @@ -10,14 +10,13 @@ LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d842 > " > > SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \ > - file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ > - file://reproducibility.patch \ > - file://no-musttail-arm.patch \ > - file://0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch \ > - file://30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch \ > - file://0001-Fix-build-issues-with-latest-Clang.patch \ > + file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \ > + file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ > + file://reproducibility.patch \ > + file://no-musttail-arm.patch \ > + file://0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch \ > " > -SRC_URI[sha256sum] = "dc82d042ecaca981a4852357c06e5235743319cf10a94cd36ad41b97883a0b54" > +SRC_URI[sha256sum] = "d4d433040f190151560c50bde840850089f87bad4fefa9ebdb4aae856a3df43a" > > inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen > > @@ -92,6 +91,7 @@ EXTRA_OECMAKE = " \ > ${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \ > -DENABLE_MINIBROWSER=ON \ > -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF \ > + -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF \ > " > # Unless DEBUG_BUILD is enabled, pass -g1 to massively reduce the size of the > # debug symbols (4.3GB to 700M at time of writing) > -- > 2.46.0 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#112360): https://lists.openembedded.org/g/openembedded-devel/message/112360 > Mute This Topic: https://lists.openembedded.org/mt/108526034/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On Wed, Sep 18 2024 at 04:03:40 PM -07:00:00, Khem Raj
<raj.khem@gmail.com> wrote:
> it fails to compile on riscv64 and perhaps this commit is to blame
Yes, looks like this commit is the reason. That missing RISCV64
register errors sounds quite unfamiliar to me and I always get lost for
hours looking at the webkitgtk code. I'll check if this issue was
already addressed and if so maybe also has been fixed. If not, I'll
file an issue for it. The webkitgtk update brings great usability
improvements for epiphany but is not a build requirement for epiphany
47.0. Also current gnome-online-accounts seems to work well without the
webkitgtk update. Therefore no need to hurry
On Fri, Sep 20 2024 at 02:00:15 PM +02:00:00, Markus Volk <f_l_k@t-online.de> wrote: >> it fails to compile on riscv64 and perhaps this commit is to blame > > Yes, looks like this commit is the reason. That missing RISCV64 > register errors sounds quite unfamiliar to me and I always get lost > for hours looking at the webkitgtk code. I'll check if this issue was > already addressed and if so maybe also has been fixed. If not, I'll > file an issue for it. The webkitgtk update brings great usability > improvements for epiphany but is not a build requirement for epiphany > 47.0. Also current gnome-online-accounts seems to work well without > the webkitgtk update. Therefore no need to hurry I had a closer look at the webkitgtk riscv64 issue. The error with the missing RISCV64 registers is due to a typo. But once that was fixed, the fun began. Despite looking at the code in a few places, I couldn't figure out how to build webassembly with Jit. However, I was able to build webassembly without jit, and since I've seen that there are general efforts to make things compilable without jit, I wanted to ask if jit support is mandatory for riscv64? webassembly build with jit enabled leads to a similar problem as this one some time ago: [<https://bugs.launchpad.net/ubuntu/+source/webkit2gtk/+bug/2008798>] It seems to me that riscv64 does not support b3 at all? I'm not entirely sure, as I don't even own such a machine, but the fact that this typo was not caught for the release version suggests that riscv64 is not being tested by CI in the webkit project. Therefore I ask.
On Fri, Oct 4, 2024 at 12:22 AM Markus Volk <f_l_k@t-online.de> wrote: > > On Fri, Sep 20 2024 at 02:00:15 PM +02:00:00, Markus Volk <f_l_k@t-online.de> wrote: > > it fails to compile on riscv64 and perhaps this commit is to blame > > > Yes, looks like this commit is the reason. That missing RISCV64 register errors sounds quite unfamiliar to me and I always get lost for hours looking at the webkitgtk code. I'll check if this issue was already addressed and if so maybe also has been fixed. If not, I'll file an issue for it. The webkitgtk update brings great usability improvements for epiphany but is not a build requirement for epiphany 47.0. Also current gnome-online-accounts seems to work well without the webkitgtk update. Therefore no need to hurry > > > > I had a closer look at the webkitgtk riscv64 issue. The error with the missing RISCV64 registers is due to a typo. But once that was fixed, the fun began. Despite looking at the code in a few places, I couldn't figure out how to build webassembly with Jit. However, I was able to build webassembly without jit, and since I've seen that there are general efforts to make things compilable without jit, I wanted to ask if jit support is mandatory for riscv64? > > webassembly build with jit enabled leads to a similar problem as this one some time ago: > [https://bugs.launchpad.net/ubuntu/+source/webkit2gtk/+bug/2008798] > > It seems to me that riscv64 does not support b3 at all? I'm not entirely sure, as I don't even own such a machine, but the fact that this typo was not caught for the release version suggests that riscv64 is not being tested by CI in the webkit project. Therefore I ask. Thanks for following this through. I wonder if we should take the patch from - https://github.com/WebKit/WebKit/pull/8696
On Fri, Oct 4 2024 at 12:45:16 AM -07:00:00, Khem Raj <raj.khem@gmail.com> wrote: > Thanks for following this through. I wonder if we should take the > patch from - <https://github.com/WebKit/WebKit/pull/8696> I think I already added this patch once. It has been removed once the issue was fixed upstream. There have been lots of changes to the wasm tier since then, so it would probably not work exactly the same way it did, but I haven't even tried so far because that was not the only issue. Fixed the typo: diff --git a/Source/JavaScriptCore/jit/GPRInfo.h b/Source/JavaScriptCore/jit/GPRInfo.h index a4801ba44528..1497058bd8c6 100644 --- a/Source/JavaScriptCore/jit/GPRInfo.h +++ b/Source/JavaScriptCore/jit/GPRInfo.h @@ -756,16 +756,16 @@ public: static constexpr GPRReg wasmBaseMemoryPointer = regCS3; static constexpr GPRReg wasmBoundsCheckingSizeRegister = regCS4; - static constexpr GPRReg regWS0 = RICSV64Registers::x6; - static constexpr GPRReg regWS1 = RICSV64Registers::x7; - static constexpr GPRReg regWA0 = RICSV64Registers::x10; - static constexpr GPRReg regWA1 = RICSV64Registers::x11; - static constexpr GPRReg regWA2 = RICSV64Registers::x12; - static constexpr GPRReg regWA3 = RICSV64Registers::x13; - static constexpr GPRReg regWA4 = RICSV64Registers::x14; - static constexpr GPRReg regWA5 = RICSV64Registers::x15; - static constexpr GPRReg regWA6 = RICSV64Registers::x16; - static constexpr GPRReg regWA7 = RICSV64Registers::x17; + static constexpr GPRReg regWS0 = RISCV64Registers::x6; + static constexpr GPRReg regWS1 = RISCV64Registers::x7; + static constexpr GPRReg regWA0 = RISCV64Registers::x10; + static constexpr GPRReg regWA1 = RISCV64Registers::x11; + static constexpr GPRReg regWA2 = RISCV64Registers::x12; + static constexpr GPRReg regWA3 = RISCV64Registers::x13; + static constexpr GPRReg regWA4 = RISCV64Registers::x14; + static constexpr GPRReg regWA5 = RISCV64Registers::x15; + static constexpr GPRReg regWA6 = RISCV64Registers::x16; + static constexpr GPRReg regWA7 = RISCV64Registers::x17; static constexpr GPRReg patchpointScratchRegister = RISCV64Registers::x30; // Should match dataTempRegister
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch new file mode 100644 index 000000000..a19008a41 --- /dev/null +++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch @@ -0,0 +1,73 @@ +From 99a21305ae683a216e9299e5dbdd763190a8cfe3 Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Fri, 11 Aug 2023 14:20:48 +0800 +Subject: [PATCH] Add a variable to control macro + __PAS_ALWAYS_INLINE_BUT_NOT_INLINE + https://bugs.webkit.org/show_bug.cgi?id=260065 + +Reviewed by NOBODY (OOPS!). + +It fails to compile webkitgtk with option `-Og` of gcc/g++: + +| In file included from Source/bmalloc/libpas/src/libpas/pas_heap_page_provider.h:30, +| from Source/bmalloc/libpas/src/libpas/pas_bootstrap_heap_page_provider.h:29, +| from Source/bmalloc/libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.h:29, +| from Source/bmalloc/libpas/src/libpas/pas_basic_heap_page_caches.h:29, +| from Source/bmalloc/libpas/src/libpas/pas_heap_config_utils.h:32, +| from Source/bmalloc/libpas/src/libpas/bmalloc_heap_config.h:34, +| from Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h:34, +| from Source/bmalloc/bmalloc/bmalloc.h:39, +| from Source/bmalloc/bmalloc/bmalloc.cpp:26: +| In function 'pas_allocation_result pas_local_allocator_try_allocate(pas_local_allocator*, size_t, size_t, pas_heap_config, pas_allocator_counts*, pas_allocation_result_filter)', +| inlined from 'pas_allocation_result pas_try_allocate_common_impl_fast(pas_heap_config, pas_allocator_counts*, pas_allocation_result_filter, pas_local_allocator*, size_t, size_t)' at webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/pas_try_allocate_common.h:85:46, +| inlined from 'pas_allocation_result bmalloc_try_allocate_with_alignment_impl_impl_fast(pas_local_allocator*, size_t, size_t)' at webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h:59:1, +| inlined from 'pas_allocation_result pas_try_allocate_intrinsic_impl_casual_case(__pas_heap*, size_t, size_t, pas_intrinsic_heap_support*, pas_heap_config, pas_try_allocate_common_fast, pas_try_allocate_common_slow, pas_intrinsic_heap_designation_mode)' at webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/pas_try_allocate_intrinsic.h:167:44, +| inlined from 'pas_allocation_result bmalloc_try_allocate_with_alignment_impl_casual_case(size_t, size_t)' at webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h:59:1: +| webkitgtk-2.40.2/Source/bmalloc/libpas/src/libpas/pas_allocation_result.h:76:1: error: inlining failed in call to 'always_inline' 'pas_allocation_result pas_allocation_result_identity(pas_allocation_result)': function not considered for inlining +| 76 | pas_allocation_result_identity(pas_allocation_result result) +| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Add an variable `WEBKIT_NO_INLINE_HINTS` to control macro +__PAS_ALWAYS_INLINE_BUT_NOT_INLINE whether includes function attribute +`always_inline`. It could set the variable to make compilation pass when +gcc option `-Og` is used. + +* Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h: +* Source/cmake/WebKitCompilerFlags.cmake: + +Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/16601] + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h | 2 +- + Source/cmake/WebKitCompilerFlags.cmake | 7 +++++++ + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h b/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h +index 5d5fb38c..a554f700 100644 +--- a/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h ++++ b/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h +@@ -44,7 +44,7 @@ __PAS_BEGIN_EXTERN_C; + #define __SUSPICIOUS__ + #define __BROKEN__ + +-#ifdef __OPTIMIZE__ ++#if defined(__OPTIMIZE__) && !defined(WEBKIT_NO_INLINE_HINTS) + #define __PAS_ALWAYS_INLINE_BUT_NOT_INLINE __attribute__((__always_inline__)) + #else + #define __PAS_ALWAYS_INLINE_BUT_NOT_INLINE +diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake +index 0732785e..4879ec40 100644 +--- a/Source/cmake/WebKitCompilerFlags.cmake ++++ b/Source/cmake/WebKitCompilerFlags.cmake +@@ -452,3 +452,10 @@ endif () + + # FIXME: Enable pre-compiled headers for all ports <https://webkit.org/b/139438> + set(CMAKE_DISABLE_PRECOMPILE_HEADERS ON) ++ ++# It fails to compile with `gcc -Og` ++set(WEBKIT_NO_INLINE_HINTS OFF CACHE BOOL "Disable funtion attribute always_inline for WebKit") ++ ++if (WEBKIT_NO_INLINE_HINTS) ++ add_definitions(-DWEBKIT_NO_INLINE_HINTS) ++endif () diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-build-issues-with-latest-Clang.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-build-issues-with-latest-Clang.patch deleted file mode 100644 index 6ef9835c2..000000000 --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-build-issues-with-latest-Clang.patch +++ /dev/null @@ -1,237 +0,0 @@ -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(-) - ---- 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 - } ---- a/Source/JavaScriptCore/jit/AssemblyHelpers.cpp -+++ b/Source/JavaScriptCore/jit/AssemblyHelpers.cpp -@@ -677,8 +677,10 @@ void AssemblyHelpers::emitNonNullDecodeZ - 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); ---- 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); - ---- a/Source/JavaScriptCore/llint/LLIntData.h -+++ b/Source/JavaScriptCore/llint/LLIntData.h -@@ -217,7 +217,7 @@ ALWAYS_INLINE LLIntCode getCodeFunctionP - #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 getWide16CodeFun - #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 getWide32CodeFun - #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 getCodeFunctionP - #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 getWide16CodeFun - #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 getWide32CodeFun - #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) ---- a/Source/JavaScriptCore/llint/LLIntThunks.cpp -+++ b/Source/JavaScriptCore/llint/LLIntThunks.cpp -@@ -227,7 +227,7 @@ ALWAYS_INLINE void* untaggedPtr(void* pt - #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 - } - ---- 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; ---- 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-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch deleted file mode 100644 index b2e40a88c..000000000 --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 1523e00a2a76e285262c8aa3721b5d99f3f2d612 Mon Sep 17 00:00:00 2001 -From: Thomas Devoogdt <thomas.devoogdt@barco.com> -Date: Mon, 16 Jan 2023 17:03:30 +0100 -Subject: [PATCH] REGRESSION(257865@main): B3Validate.cpp: fix - - !ENABLE(WEBASSEMBLY_B3JIT) - -https://bugs.webkit.org/show_bug.cgi?id=250681 - -Reviewed by NOBODY (OOPS!). - -WasmTypeDefinition.h isn't included if not ENABLE(WEBASSEMBLY_B3JIT). -Also, toB3Type and simdScalarType are not defined if it is included. - -Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com> - -Upstream-Status: Inappropriate [https://bugs.launchpad.net/ubuntu/+source/webkit2gtk/+bug/2008798] ---- - Source/JavaScriptCore/b3/B3Validate.cpp | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/Source/JavaScriptCore/b3/B3Validate.cpp b/Source/JavaScriptCore/b3/B3Validate.cpp -index eaaa3749..1d089783 100644 ---- a/Source/JavaScriptCore/b3/B3Validate.cpp -+++ b/Source/JavaScriptCore/b3/B3Validate.cpp -@@ -47,6 +47,12 @@ - #include <wtf/StringPrintStream.h> - #include <wtf/text/CString.h> - -+#if ENABLE(WEBASSEMBLY) && ENABLE(WEBASSEMBLY_B3JIT) -+#define simdScalarTypeToB3Type(type) toB3Type(Wasm::simdScalarType(type)) -+#else -+#define simdScalarTypeToB3Type(type) B3::Type() -+#endif -+ - namespace JSC { namespace B3 { - - namespace { -@@ -454,7 +460,7 @@ public: - case VectorExtractLane: - VALIDATE(!value->kind().hasExtraBits(), ("At ", *value)); - VALIDATE(value->numChildren() == 1, ("At ", *value)); -- VALIDATE(value->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); -+ VALIDATE(value->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value)); - VALIDATE(value->child(0)->type() == V128, ("At ", *value)); - break; - case VectorReplaceLane: -@@ -462,7 +468,7 @@ public: - VALIDATE(value->numChildren() == 2, ("At ", *value)); - VALIDATE(value->type() == V128, ("At ", *value)); - VALIDATE(value->child(0)->type() == V128, ("At ", *value)); -- VALIDATE(value->child(1)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); -+ VALIDATE(value->child(1)->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value)); - break; - case VectorDupElement: - VALIDATE(!value->kind().hasExtraBits(), ("At ", *value)); -@@ -484,7 +490,7 @@ public: - VALIDATE(!value->kind().hasExtraBits(), ("At ", *value)); - VALIDATE(value->numChildren() == 1, ("At ", *value)); - VALIDATE(value->type() == V128, ("At ", *value)); -- VALIDATE(value->child(0)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value)); -+ VALIDATE(value->child(0)->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value)); - break; - - case VectorPopcnt: diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.46.0.bb similarity index 94% rename from meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb rename to meta-oe/recipes-support/webkitgtk/webkitgtk3_2.46.0.bb index 9493d8642..0e3702615 100644 --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb +++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.46.0.bb @@ -10,14 +10,13 @@ LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d842 " SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \ - file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ - file://reproducibility.patch \ - file://no-musttail-arm.patch \ - file://0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch \ - file://30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch \ - file://0001-Fix-build-issues-with-latest-Clang.patch \ + file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \ + file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ + file://reproducibility.patch \ + file://no-musttail-arm.patch \ + file://0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch \ " -SRC_URI[sha256sum] = "dc82d042ecaca981a4852357c06e5235743319cf10a94cd36ad41b97883a0b54" +SRC_URI[sha256sum] = "d4d433040f190151560c50bde840850089f87bad4fefa9ebdb4aae856a3df43a" inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen @@ -92,6 +91,7 @@ EXTRA_OECMAKE = " \ ${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \ -DENABLE_MINIBROWSER=ON \ -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF \ + -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF \ " # Unless DEBUG_BUILD is enabled, pass -g1 to massively reduce the size of the # debug symbols (4.3GB to 700M at time of writing)
- drop backport patches - import 0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch from oe-core - set USE_SYSTEM_SYSPROF_CAPTURE=OFF to avoid sysprof dependency Highlights of the WebKitGTK 2.46.0 release Use Skia instead of cairo for 2D rendering and enable GPU rendering by default. Enable offscreen canvas by default. Add support for system tracing with Sysprof. Implement printing using the Print portal. Add new API to load settings from a config file. Add a new setting to enable or disable the 2D canvas acceleration (enabled by default). Undeprecate console messages API and make it available in 6.0 API. For more details about all the changes included in WebKitGTK 2.46 see the NEWS file that is included in the tarball. Signed-off-by: Markus Volk <f_l_k@t-online.de> --- ...able-to-control-macro-__PAS_ALWAYS_I.patch | 73 ++++++ ...1-Fix-build-issues-with-latest-Clang.patch | 237 ------------------ ...d5e22213fdaca2a29ec3400c927d710a37a8.patch | 65 ----- ...kitgtk3_2.44.3.bb => webkitgtk3_2.46.0.bb} | 14 +- 4 files changed, 80 insertions(+), 309 deletions(-) create mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Fix-build-issues-with-latest-Clang.patch delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch rename meta-oe/recipes-support/webkitgtk/{webkitgtk3_2.44.3.bb => webkitgtk3_2.46.0.bb} (94%)