diff mbox series

[meta-oe] webkitgtk3: update 2.44.3 -> 2.46.0

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

Commit Message

Markus Volk Sept. 18, 2024, 6:47 p.m. UTC
- 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%)

Comments

Khem Raj Sept. 18, 2024, 11:03 p.m. UTC | #1
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]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

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)