From f9f74b1c844c7bb51edd058c53fb6fc62e0590dd Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 18 Mar 2025 18:05:15 -0700 Subject: webkitgtk3: Upgrade to 2.48.0 * Drop backports already present in this release * Add couple of patches to fix build with clang-20 * Refresh patches e.g. no-musttail-arm.patch Signed-off-by: Khem Raj --- ...-292304-main-7ffc29624258-.-https-bugs.we.patch | 75 +++++++ ...h-error-no-matching-function-for-call-to-.patch | 77 +++++++ .../0001-Fix-build-issues-with-latest-Clang.patch | 237 --------------------- ...erpreter.cpp-339-21-error-t6-was-not-decl.patch | 35 --- .../webkitgtk3/0001-Support-ICU-76.1-build.patch | 36 ---- .../30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch | 65 ------ .../fff1b1773bff2ef7c3b867ab019d69faa36c010d.patch | 33 --- .../webkitgtk/webkitgtk3/no-musttail-arm.patch | 24 ++- .../recipes-support/webkitgtk/webkitgtk3_2.44.3.bb | 192 ----------------- .../recipes-support/webkitgtk/webkitgtk3_2.48.0.bb | 191 +++++++++++++++++ 10 files changed, 357 insertions(+), 608 deletions(-) create mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Cherry-pick-292304-main-7ffc29624258-.-https-bugs.we.patch create mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-EnumTraits.h-error-no-matching-function-for-call-to-.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/0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Support-ICU-76.1-build.patch delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3/fff1b1773bff2ef7c3b867ab019d69faa36c010d.patch delete mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb create mode 100644 meta-oe/recipes-support/webkitgtk/webkitgtk3_2.48.0.bb diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Cherry-pick-292304-main-7ffc29624258-.-https-bugs.we.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Cherry-pick-292304-main-7ffc29624258-.-https-bugs.we.patch new file mode 100644 index 0000000000..5cbb1035b2 --- /dev/null +++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Cherry-pick-292304-main-7ffc29624258-.-https-bugs.we.patch @@ -0,0 +1,75 @@ +From 83093455d02d73a327cea502d974aac82b59ad17 Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro +Date: Tue, 18 Mar 2025 07:39:01 -0700 +Subject: [PATCH] Cherry-pick 292304@main (7ffc29624258). + https://bugs.webkit.org/show_bug.cgi?id=289953 + + [GTK][WPE] Use _LIBCPP_HARDENING_MODE with newer libc++ versions + https://bugs.webkit.org/show_bug.cgi?id=289953 + + Reviewed by Alicia Boya Garcia. + + * Source/cmake/OptionsCommon.cmake: Add a new check for the libc++ + version, if it is 19 or newer, use the new _LIBCPP_HARDENING_MODE + macro, otherwise for older versions keep _LIBCPP_ENABLE_ASSERTIONS. + + Canonical link: https://commits.webkit.org/292304@main + +Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/2c105443d41e5ce3de3a4cac2ed8a07ebd134459] + +Canonical link: https://commits.webkit.org/290945.71@webkitglib/2.48 + +Signed-off-by: Khem Raj +--- + Source/cmake/OptionsCommon.cmake | 24 +++++++++++++++++++----- + 1 file changed, 19 insertions(+), 5 deletions(-) + +diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake +index f6cf5ee..3178674 100644 +--- a/Source/cmake/OptionsCommon.cmake ++++ b/Source/cmake/OptionsCommon.cmake +@@ -229,8 +229,22 @@ set(CXX_STDLIB_TEST_SOURCE " + ") + check_cxx_source_compiles("${CXX_STDLIB_TEST_SOURCE}" CXX_STDLIB_IS_LIBCPP) + if (CXX_STDLIB_IS_LIBCPP) +- set(CXX_STDLIB_VARIANT "LIBCPP") +- set(CXX_STDLIB_ASSERTIONS_MACRO _LIBCPP_ENABLE_ASSERTIONS) ++ set(CXX_STDLIB_TEST_SOURCE " ++ #include ++ #if _LIBCPP_VERSION >= 190000 ++ int main() { } ++ #else ++ #error libc++ is older than 19.x ++ #endif ++ ") ++ check_cxx_source_compiles("${CXX_STDLIB_TEST_SOURCE}" CXX_STDLIB_IS_LIBCPP_19_OR_NEWER) ++ if (CXX_STDLIB_IS_LIBCPP_19_OR_NEWER) ++ set(CXX_STDLIB_VARIANT "LIBCPP 19+") ++ set(CXX_STDLIB_ASSERTIONS_MACRO _LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE) ++ else () ++ set(CXX_STDLIB_VARIANT "LIBCPP <19") ++ set(CXX_STDLIB_ASSERTIONS_MACRO _LIBCPP_ENABLE_ASSERTIONS=1) ++ endif () + else () + set(CXX_STDLIB_TEST_SOURCE " + #include +@@ -239,7 +253,7 @@ else () + check_cxx_source_compiles("${CXX_STDLIB_TEST_SOURCE}" CXX_STDLIB_IS_GLIBCXX) + if (CXX_STDLIB_IS_GLIBCXX) + set(CXX_STDLIB_VARIANT "GLIBCXX") +- set(CXX_STDLIB_ASSERTIONS_MACRO _GLIBCXX_ASSERTIONS) ++ set(CXX_STDLIB_ASSERTIONS_MACRO _GLIBCXX_ASSERTIONS=1) + endif () + endif () + message(STATUS "C++ standard library in use: ${CXX_STDLIB_VARIANT}") +@@ -255,8 +269,8 @@ option(USE_CXX_STDLIB_ASSERTIONS + + if (USE_CXX_STDLIB_ASSERTIONS) + if (CXX_STDLIB_ASSERTIONS_MACRO) +- message(STATUS " Assertions enabled, ${CXX_STDLIB_ASSERTIONS_MACRO}=1") +- add_compile_definitions("${CXX_STDLIB_ASSERTIONS_MACRO}=1") ++ message(STATUS " Assertions enabled, ${CXX_STDLIB_ASSERTIONS_MACRO}") ++ add_compile_definitions("${CXX_STDLIB_ASSERTIONS_MACRO}") + else () + message(STATUS " Assertions disabled, CXX_STDLIB_ASSERTIONS_MACRO undefined") + endif () diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-EnumTraits.h-error-no-matching-function-for-call-to-.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-EnumTraits.h-error-no-matching-function-for-call-to-.patch new file mode 100644 index 0000000000..5b83d9e7eb --- /dev/null +++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-EnumTraits.h-error-no-matching-function-for-call-to-.patch @@ -0,0 +1,77 @@ +From 7d159a631ae55c10a0b7a92cf031200a11629736 Mon Sep 17 00:00:00 2001 +From: Fujii Hironori +Date: Tue, 18 Mar 2025 10:25:47 +0900 +Subject: [PATCH] EnumTraits.h: error: no matching function for call to + 'enumName' with Clang 20 https://bugs.webkit.org/show_bug.cgi?id=289669 + +Reviewed by NOBODY (OOPS!). + +Clang 20 couldn't compile EnumTraits.h. + +> wtf/EnumTraits.h:212:33: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'V' + +An invalid enum value can't be specifed to the template parameter `V`. + +> template constexpr std::span enumName() + +The upstream Magic Enum C++ has a template variable `is_enum_constexpr_static_cast_valid` to check a enum value is valid. + + +Imported the template variable. + +* Source/WTF/wtf/EnumTraits.h: +(WTF::enumName): +(WTF::makeEnumNames): + +Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/42597] +Signed-off-by: Khem Raj +--- + Source/WTF/wtf/EnumTraits.h | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +diff --git a/Source/WTF/wtf/EnumTraits.h b/Source/WTF/wtf/EnumTraits.h +index 0d33e39a..95e6318b 100644 +--- a/Source/WTF/wtf/EnumTraits.h ++++ b/Source/WTF/wtf/EnumTraits.h +@@ -152,6 +152,16 @@ constexpr bool isZeroBasedContiguousEnum() + #pragma clang diagnostic ignored "-Wenum-constexpr-conversion" + #endif + ++#if COMPILER(CLANG) && __clang_major__ >= 16 ++template ++inline constexpr bool isEnumConstexprStaticCastValid = false; ++template ++inline constexpr bool isEnumConstexprStaticCastValid(V)>>> = true; ++#else ++template ++inline constexpr bool isEnumConstexprStaticCastValid = true; ++#endif ++ + template + constexpr std::span enumTypeNameImpl() + { +@@ -215,6 +225,15 @@ constexpr std::span enumName() + return result; + } + ++template ++constexpr std::span enumName() ++{ ++ if constexpr (isEnumConstexprStaticCastValid) ++ return enumName(V)>(); ++ else ++ return { }; ++} ++ + template + constexpr std::underlying_type_t enumNamesMin() + { +@@ -264,7 +283,7 @@ constexpr auto makeEnumNames(std::index_sequence) + { + constexpr auto min = enumNamesMin(); + return std::array, sizeof...(Is)> { +- enumName(static_cast>(Is) + min)>()... ++ enumName>(Is) + min>()... + }; + } + 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 6ef9835c2c..0000000000 --- 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 -Date: Mon, 2 Sep 2024 21:38:12 -0700 -Subject: [PATCH] Fix build issues with latest Clang - https://bugs.webkit.org/show_bug.cgi?id=276198 rdar://130933637 - -Reviewed by Yusuke Suzuki. - -The use of the template keyword to reference template members without a template argument list was deprecated in the C++ standard. -e.g. `foo.template bar()` nows needs to be `foo.template bar<>()`. I ran into a different issue with `std::reference_wrapper` that -blocked me from going any further, which AFAICT is a bug on the Clang side. - -This also fixes a few other warnings that popped up while building with the new Clang denoted inline - -* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: -(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq): Clang didn't like the implicit static_cast(UINT32_MAX) so make it explicit with a static_assert no data was lost. -* Source/JavaScriptCore/jit/AssemblyHelpers.cpp: -(JSC::AssemblyHelpers::emitNonNullDecodeZeroExtendedStructureID): Clang didn't like the implicit static_cast(UINT32_MAX) so make it explicit with a static_assert no data was lost. -* Source/JavaScriptCore/llint/InPlaceInterpreter.cpp: -* Source/JavaScriptCore/llint/LLIntData.h: -(JSC::LLInt::getCodeFunctionPtr): -(JSC::LLInt::getWide16CodeFunctionPtr): -(JSC::LLInt::getWide32CodeFunctionPtr): -* Source/JavaScriptCore/parser/Nodes.h: Missing definition of ModuleScopeData added include. -* Source/JavaScriptCore/runtime/JSCast.h: -(JSC::JSCastingHelpers::inherits): -(JSC::jsDynamicCast): -* Source/ThirdParty/libwebrtc/Source/third_party/boringssl/src/crypto/bio/connect.c: -(conn_callback_ctrl): Had a warning about an incompatible function type. Seems like this is intentional suppressed the warning. -* Source/WTF/wtf/cf/TypeCastsCF.h: Had a warning about extra namespace qualification. I just moved it out of the namespace. That said, it feels like this warning shouldn't apply to macro expansions... -* Source/WebCore/PAL/ThirdParty/libavif/ThirdParty/dav1d/src/decode.c: -(decode_b): Had a warning about different types on the middle/right of a ternary expression. I just pushed the comparison inside the ternary. - -Canonical link: https://commits.webkit.org/280700@main - -Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/62b6e2db547e#diff-136d848d7c1b400da9b486916b67592b54e5abf7c66ac247697a93ae2fb743a9] -Signed-off-by: Khem Raj ---- - Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp | 6 ++++-- - Source/JavaScriptCore/jit/AssemblyHelpers.cpp | 6 ++++-- - .../JavaScriptCore/llint/InPlaceInterpreter.cpp | 16 ++++++++-------- - Source/JavaScriptCore/llint/LLIntData.h | 12 ++++++------ - Source/JavaScriptCore/llint/LLIntThunks.cpp | 2 +- - Source/JavaScriptCore/parser/Nodes.h | 4 ++-- - Source/JavaScriptCore/runtime/JSCast.h | 4 ++-- - 7 files changed, 27 insertions(+), 23 deletions(-) - ---- a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp -+++ b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp -@@ -22930,8 +22930,10 @@ IGNORE_CLANG_WARNINGS_END - return m_out.shl(m_out.zeroExtPtr(structureID), m_out.constIntPtr(StructureID::encodeShiftAmount)); - #else - LValue maskedStructureID = structureID; -- if constexpr (structureHeapAddressSize < 4 * GB) -- maskedStructureID = m_out.bitAnd(structureID, m_out.constInt32(StructureID::structureIDMask)); -+ if constexpr (structureHeapAddressSize < 4 * GB) { -+ static_assert(static_cast(StructureID::structureIDMask) == StructureID::structureIDMask); -+ maskedStructureID = m_out.bitAnd(structureID, m_out.constInt32(static_cast(StructureID::structureIDMask))); -+ } - return m_out.bitOr(m_out.constIntPtr(startOfStructureHeap()), m_out.zeroExtPtr(maskedStructureID)); - #endif - } ---- 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(StructureID::structureIDMask) == StructureID::structureIDMask); -+ and32(TrustedImm32(static_cast(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(ipint_unreachable_validate); \ - void* ptr = reinterpret_cast(ipint_ ## name ## _validate); \ -- void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr(); \ -- void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); \ -+ void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr<>(); \ -+ void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); \ - RELEASE_ASSERT_WITH_MESSAGE((char*)(untaggedPtr) - (char*)(untaggedBase) == opcode * 256, #name); \ - } while (false); - -@@ -52,8 +52,8 @@ do { \ - do { \ - void* base = reinterpret_cast(ipint_i32_trunc_sat_f32_s_validate); \ - void* ptr = reinterpret_cast(ipint_ ## name ## _validate); \ -- void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr(); \ -- void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); \ -+ void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr<>(); \ -+ void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); \ - RELEASE_ASSERT_WITH_MESSAGE((char*)(untaggedPtr) - (char*)(untaggedBase) == opcode * 256, #name); \ - } while (false); - -@@ -61,8 +61,8 @@ do { \ - do { \ - void* base = reinterpret_cast(ipint_simd_v128_load_mem_validate); \ - void* ptr = reinterpret_cast(ipint_ ## name ## _validate); \ -- void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr(); \ -- void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); \ -+ void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr<>(); \ -+ void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); \ - RELEASE_ASSERT_WITH_MESSAGE((char*)(untaggedPtr) - (char*)(untaggedBase) == opcode * 256, #name); \ - } while (false); - -@@ -70,8 +70,8 @@ do { \ - do { \ - void* base = reinterpret_cast(ipint_memory_atomic_notify_validate); \ - void* ptr = reinterpret_cast(ipint_ ## name ## _validate); \ -- void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr(); \ -- void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); \ -+ void* untaggedBase = CodePtr::fromTaggedPtr(base).template untaggedPtr<>(); \ -+ void* untaggedPtr = CodePtr::fromTaggedPtr(ptr).template untaggedPtr<>(); \ - RELEASE_ASSERT_WITH_MESSAGE((char*)(untaggedPtr) - (char*)(untaggedBase) == opcode * 256, #name); \ - } while (false); - ---- 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(getCodePtr(opcodeID).taggedPtr()); - #else -- return reinterpret_cast(getCodePtr(opcodeID).template taggedPtr()); -+ return reinterpret_cast(getCodePtr(opcodeID).template taggedPtr<>()); - #endif - } - -@@ -227,7 +227,7 @@ ALWAYS_INLINE LLIntCode getWide16CodeFun - #if COMPILER(MSVC) - return reinterpret_cast(getWide16CodePtr(opcodeID).taggedPtr()); - #else -- return reinterpret_cast(getWide16CodePtr(opcodeID).template taggedPtr()); -+ return reinterpret_cast(getWide16CodePtr(opcodeID).template taggedPtr<>()); - #endif - } - -@@ -237,7 +237,7 @@ ALWAYS_INLINE LLIntCode getWide32CodeFun - #if COMPILER(MSVC) - return reinterpret_cast(getWide32CodePtr(opcodeID).taggedPtr()); - #else -- return reinterpret_cast(getWide32CodePtr(opcodeID).template taggedPtr()); -+ return reinterpret_cast(getWide32CodePtr(opcodeID).template taggedPtr<>()); - #endif - } - #else // not ENABLE(JIT) -@@ -361,7 +361,7 @@ ALWAYS_INLINE LLIntCode getCodeFunctionP - #if COMPILER(MSVC) - return reinterpret_cast(getCodePtr(opcodeID).taggedPtr()); - #else -- return reinterpret_cast(getCodePtr(opcodeID).template taggedPtr()); -+ return reinterpret_cast(getCodePtr(opcodeID).template taggedPtr<>()); - #endif - } - -@@ -371,7 +371,7 @@ ALWAYS_INLINE LLIntCode getWide16CodeFun - #if COMPILER(MSVC) - return reinterpret_cast(getWide16CodePtr(opcodeID).taggedPtr()); - #else -- return reinterpret_cast(getWide16CodePtr(opcodeID).template taggedPtr()); -+ return reinterpret_cast(getWide16CodePtr(opcodeID).template taggedPtr<>()); - #endif - } - -@@ -381,7 +381,7 @@ ALWAYS_INLINE LLIntCode getWide32CodeFun - #if COMPILER(MSVC) - return reinterpret_cast(getWide32CodePtr(opcodeID).taggedPtr()); - #else -- return reinterpret_cast(getWide32CodePtr(opcodeID).template taggedPtr()); -+ return reinterpret_cast(getWide32CodePtr(opcodeID).template taggedPtr<>()); - #endif - } - #else // not ENABLE(JIT) ---- 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::fromTaggedPtr(ptr).untaggedPtr(); - #else -- return CodePtr::fromTaggedPtr(ptr).template untaggedPtr(); -+ return CodePtr::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 -@@ -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 - bool inherits(From* from) - { - using Dispatcher = InheritsTraits; -- return Dispatcher::template inherits(from); -+ return Dispatcher::template inherits<>(from); - } - - } // namespace JSCastingHelpers -@@ -245,7 +245,7 @@ template - To jsDynamicCast(From* from) - { - using Dispatcher = JSCastingHelpers::InheritsTraits::type>::type>; -- if (LIKELY(Dispatcher::template inherits(from))) -+ if (LIKELY(Dispatcher::template inherits<>(from))) - return static_cast(from); - return nullptr; - } diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch deleted file mode 100644 index e6a43c2fff..0000000000 --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch +++ /dev/null @@ -1,35 +0,0 @@ -From fb81a5de7798eb7f68e0de1c281671553e1aa19d Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Mon, 5 Feb 2024 11:00:49 -0600 -Subject: [PATCH] =?UTF-8?q?LowLevelInterpreter.cpp:339:21:=20error:=20?= - =?UTF-8?q?=E2=80=98t6=E2=80=99=20was=20not=20declared=20in=20this=20scope?= - =?UTF-8?q?=20https://bugs.webkit.org/show=5Fbug.cgi=3Fid=3D268739?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Unreviewed build fix. Seems a backport went badly, and we didn't notice -because the code is architecture-specific. - -* Source/JavaScriptCore/llint/LowLevelInterpreter.cpp: -(JSC::CLoop::execute): - -Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/3d5373575695b293b8559155431d0079a6153aff] -Signed-off-by: Khem Raj ---- - Source/JavaScriptCore/llint/LowLevelInterpreter.cpp | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp -index 75cecbbd..b1020ea4 100644 ---- a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp -+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp -@@ -336,8 +336,6 @@ JSValue CLoop::execute(OpcodeID entryOpcodeID, void* executableAddress, VM* vm, - UNUSED_VARIABLE(t2); - UNUSED_VARIABLE(t3); - UNUSED_VARIABLE(t5); -- UNUSED_VARIABLE(t6); -- UNUSED_VARIABLE(t7); - - struct StackPointerScope { - StackPointerScope(CLoopStack& stack) diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Support-ICU-76.1-build.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Support-ICU-76.1-build.patch deleted file mode 100644 index 31535e7ae2..0000000000 --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Support-ICU-76.1-build.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 57b80aa00be614218552fda67b2bf8d535b4f4cf Mon Sep 17 00:00:00 2001 -From: Jason Schonberg -Date: Wed, 20 Nov 2024 11:05:52 -0500 -Subject: [PATCH] Support ICU 76.1 build - -https://bugs.webkit.org/show_bug.cgi?id=282120 - -Reviewed by Yusuke Suzuki. - -In ICU 76.1 an additional macro `U_SHOW_CPLUSPLUS_HEADER_API` was added to -control visibility of the C++ API within ICU. Set this value to `0` since WebKit -wants to only use the C API. - -* Source/WTF/wtf/Platform.h: - -Canonical link: https://commits.webkit.org/285727@main - -Upstream-Status: Backport [ from webkitgtk-2.47.1 https://github.com/WebKit/WebKit/commit/63f7badbada070ebaadd318b2801818ecf7e7ea0 ] - -Signed-off-by: Jason Schonberg ---- - Source/WTF/wtf/Platform.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h -index 23070df2..51a8dce9 100644 ---- a/Source/WTF/wtf/Platform.h -+++ b/Source/WTF/wtf/Platform.h -@@ -115,6 +115,7 @@ - /* ICU configuration. Some of these match ICU defaults on some platforms, but we would like them consistently set everywhere we build WebKit. */ - #define U_HIDE_DEPRECATED_API 1 - #define U_SHOW_CPLUSPLUS_API 0 -+#define U_SHOW_CPLUSPLUS_HEADER_API 0 - #ifdef __cplusplus - #define UCHAR_TYPE char16_t - #endif 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 b2e40a88c8..0000000000 --- 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 -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 - -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 - #include - -+#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/fff1b1773bff2ef7c3b867ab019d69faa36c010d.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/fff1b1773bff2ef7c3b867ab019d69faa36c010d.patch deleted file mode 100644 index 3d76aa4e4d..0000000000 --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/fff1b1773bff2ef7c3b867ab019d69faa36c010d.patch +++ /dev/null @@ -1,33 +0,0 @@ -From fff1b1773bff2ef7c3b867ab019d69faa36c010d Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Wed, 3 Jul 2024 13:36:54 -0700 -Subject: [PATCH] WebKitDOMEventTarget.h:95: Warning: WebKit2WebExtension: - invalid "scope" annotation: only valid on callback parameters - https://bugs.webkit.org/show_bug.cgi?id=276180 - -Unreviewed build fix. - -Emmanuele recommends using (type gpointer) for the GCallback parameter -of webkit_dom_event_target_remove_event_listener, since it won't be -called and is therefore not functioning as a callback. - -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h: - -Canonical link: https://commits.webkit.org/280639@main -Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/fff1b1773bff2ef7c3b867ab019d69faa36c010d] -Signed-off-by: Khem Raj ---- - .../InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h -@@ -92,7 +92,7 @@ WEBKIT_DEPRECATED gboolean webkit_dom_e - * webkit_dom_event_target_remove_event_listener: - * @target: A #WebKitDOMEventTarget - * @event_name: A #gchar -- * @handler: (scope call): A #GCallback -+ * @handler: (type gpointer): A #GCallback - * @use_capture: A #gboolean - * - * Returns: a #gboolean diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch index 37bc6538c3..367e6b8342 100644 --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch +++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch @@ -1,6 +1,6 @@ -From c50f2277509f2e6f087cda2eaf323eaf569aad8d Mon Sep 17 00:00:00 2001 +From 4602261fa44d6bbb4c3698c79e08a6a40a6edc5a Mon Sep 17 00:00:00 2001 From: Khem Raj -Date: Sat, 30 Sep 2023 12:42:06 -0700 +Date: Fri, 12 Jan 2024 09:21:39 -0800 Subject: [PATCH] clang/arm: Do not use MUST_TAIL_CALL This causes clang-17 to crash see [1] @@ -9,22 +9,26 @@ this code is new in webkit 2.42[2] thats why we do not see the crash in older we [1] https://github.com/llvm/llvm-project/issues/67767 [2] https://github.com/WebKit/WebKit/commit/4d816460b765acd8aef90ab474615850b91ecc35 -Upstream-Status: Pending +Upstream-Status: Inappropriate [work around to avoid clang compiler crash] Signed-off-by: Khem Raj + +Update context for webkitgtk 2.48.0. + +Signed-off-by: Kai Kang --- Source/WTF/wtf/Compiler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h -index 449ca502..daac29d7 100644 +index 16e416d..68dd9a0 100644 --- a/Source/WTF/wtf/Compiler.h +++ b/Source/WTF/wtf/Compiler.h -@@ -321,7 +321,7 @@ - /* MUST_TAIL_CALL */ - +@@ -293,7 +293,7 @@ + #if COMPILER(CLANG) + #if __SIZEOF_POINTER__ == 8 #if !defined(MUST_TAIL_CALL) && defined(__cplusplus) && defined(__has_cpp_attribute) --#if __has_cpp_attribute(clang::musttail) -+#if __has_cpp_attribute(clang::musttail) && !defined(__arm__) +-#if __has_cpp_attribute(clang::musttail) && !defined(__powerpc__) && !defined(_WIN32) ++#if __has_cpp_attribute(clang::musttail) && !defined(__powerpc__) && !defined(_WIN32) && !defined(__arm__) #define MUST_TAIL_CALL [[clang::musttail]] - #endif + #define HAVE_MUST_TAIL_CALL 1 #endif diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb deleted file mode 100644 index 07fa0d06f7..0000000000 --- a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.3.bb +++ /dev/null @@ -1,192 +0,0 @@ -SUMMARY = "WebKit web rendering engine for the GTK+ platform" -DESCRIPTION = "\ - This recipe builds with Gtk3 (instead of Gtk4) which results in API version 4.1 \ - (having javascriptcoregtk-4.1.pc instead of 6.0). \ -" -HOMEPAGE = "https://www.webkitgtk.org/" -BUGTRACKER = "https://bugs.webkit.org/" - -LICENSE = "BSD-2-Clause & LGPL-2.0-or-later" -LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ - file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ - file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ - file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ - " - -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://fff1b1773bff2ef7c3b867ab019d69faa36c010d.patch \ - file://0001-Support-ICU-76.1-build.patch \ - " -SRC_URI[sha256sum] = "dc82d042ecaca981a4852357c06e5235743319cf10a94cd36ad41b97883a0b54" - -inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen - -S = "${WORKDIR}/webkitgtk-${PV}" - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" -REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}" - -CVE_PRODUCT = "webkitgtk webkitgtk\+" - -DEPENDS += " \ - ruby-native \ - gperf-native \ - unifdef-native \ - cairo \ - harfbuzz \ - jpeg \ - atk \ - libwebp \ - gtk+3 \ - libxslt \ - libtasn1 \ - libnotify \ - gstreamer1.0 \ - gstreamer1.0-plugins-base \ - glib-2.0-native \ - gettext-native \ - " - -# using soup2 builds (JavaScript) API version 4.0 -# using soup3 builds (JavaScript) API version 4.1 -PACKAGECONFIG_SOUP ?= "soup3" -PACKAGECONFIG ??= " \ - ${@bb.utils.filter('DISTRO_FEATURES', 'systemd wayland x11', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl-or-es', '', d)} \ - enchant \ - libsecret \ - ${PACKAGECONFIG_SOUP} \ - " - -PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native" -PACKAGECONFIG[angle] = "-DUSE_ANGLE_WEBGL=ON,-DUSE_ANGLE_WEBGL=OFF" -PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt" -PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" -PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2" -PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" -PACKAGECONFIG[jpegxl] = " -DUSE_JPEGXL=ON,-DUSE_JPEGXL=OFF,libjxl" -PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/egl" -PACKAGECONFIG[opengl] = "-DENABLE_GRAPHICS_CONTEXT_GL=ON,-DENABLE_GRAPHICS_CONTEXT_GL=OFF,virtual/egl" -PACKAGECONFIG[opengl-or-es] = "-DUSE_OPENGL_OR_ES=ON,-DUSE_OPENGL_OR_ES=OFF" -PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" -PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" -PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" -PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" -PACKAGECONFIG[systemd] = "-DUSE_SYSTEMD=ON,-DUSE_SYSTEMD=off,systemd" -PACKAGECONFIG[reduce-size] = "-DCMAKE_BUILD_TYPE=MinSizeRel,-DCMAKE_BUILD_TYPE=Release,," -PACKAGECONFIG[lcms] = "-DUSE_LCMS=ON,-DUSE_LCMS=OFF,lcms" -PACKAGECONFIG[soup2] = "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,libsoup-2.4,,,soup3" -PACKAGECONFIG[soup3] = ",,libsoup,,,soup2" -PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd" -PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif" -PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad" -PACKAGECONFIG[gamepad] = "-DENABLE_GAMEPAD=ON,-DENABLE_GAMEPAD=OFF,libmanette" -PACKAGECONFIG[webrtc] = "-DENABLE_WEB_RTC=ON,-DENABLE_WEB_RTC=OFF" -PACKAGECONFIG[bubblewrap] = "-DENABLE_BUBBLEWRAP_SANDBOX=ON -DBWRAP_EXECUTABLE=${bindir}/bwrap -DDBUS_PROXY_EXECUTABLE=${bindir}/xdg-dbus-proxy,-DENABLE_BUBBLEWRAP_SANDBOX=OFF,,bubblewrap xdg-dbus-proxy" -PACKAGECONFIG[backtrace] = "-DUSE_LIBBACKTRACE=ON,-DUSE_LIBBACKTRACE=OFF,libbacktrace" - -EXTRA_OECMAKE = " \ - -DPORT=GTK \ - -DUSE_GTK4=OFF \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ - ${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \ - -DENABLE_MINIBROWSER=ON \ - -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF \ - " -# pass -g1 to massively reduce the size of the debug symbols (4.3GB to 700M at time of writing) -DEBUG_LEVELFLAG = "-g1" - -# Javascript JIT is not supported on ARC -EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF " -# By default 25-bit "medium" calls are used on ARC -# which is not enough for binaries larger than 32 MiB -CFLAGS:append:arc = " -mlong-calls" -CXXFLAGS:append:arc = " -mlong-calls" - -# Needed for non-mesa graphics stacks when x11 is disabled -CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" - -# Javascript JIT is not supported on powerpc -EXTRA_OECMAKE:append:powerpc = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE:append:powerpc64 = " -DENABLE_JIT=OFF " - -# ARM JIT code does not build on ARMv4/5/6 anymore -EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE:append:armv5 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF " - -# And for armv7* don't enable it for softfp, because after: -# https://github.com/WebKit/WebKit/commit/a2ec4ef1997d6fafa6ffc607bffb54e76168a918 -# https://bugs.webkit.org/show_bug.cgi?id=242172 -# softfp armv7* fails because WEBASSEMBLY is left enabled by default and JIT gets -# explicitly disabled causing: -# http://errors.yoctoproject.org/Errors/Details/734587/ -# PR was sent upstream, but the end result is the same both JIT and WEBASSEMBLY disabled -# https://github.com/WebKit/WebKit/pull/17447 -EXTRA_OECMAKE:append:armv7a = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}" -EXTRA_OECMAKE:append:armv7r = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}" -EXTRA_OECMAKE:append:armv7ve = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}" - -# JIT does not work on RISCV -EXTRA_OECMAKE:append:riscv32 = " -DENABLE_JIT=OFF" - -# JIT not supported on MIPS either -EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " - -# JIT not supported on X32 -# An attempt was made to upstream JIT support for x32 in -# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as -# unresolved due to limited X32 adoption. -EXTRA_OECMAKE:append:x86-x32 = " -DENABLE_JIT=OFF " - -SECURITY_CFLAGS:remove:aarch64 = "-fpie" -SECURITY_CFLAGS:append:aarch64 = " -fPIE" - -FILES:${PN} += "${libdir}/webkit2gtk-4.*/injected-bundle/libwebkit2gtkinjectedbundle.so" - -RRECOMMENDS:${PN} += "ca-certificates shared-mime-info" - -# http://errors.yoctoproject.org/Errors/Details/20370/ -ARM_INSTRUCTION_SET:armv4 = "arm" -ARM_INSTRUCTION_SET:armv5 = "arm" -ARM_INSTRUCTION_SET:armv6 = "arm" - -# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 -# https://bugs.webkit.org/show_bug.cgi?id=159880 -# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. -# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). -ARM_INSTRUCTION_SET:armv7a = "thumb" -ARM_INSTRUCTION_SET:armv7r = "thumb" -ARM_INSTRUCTION_SET:armv7ve = "thumb" - -# ANGLE requires SSE support as of webkit 2.40.x on 32 bit x86 -COMPATIBLE_HOST:x86 = "${@bb.utils.contains_any('TUNE_FEATURES', 'core2 corei7', '.*', 'null', d)}" - -# introspection inside qemu-arm hangs forever on musl/arm builds -# therefore disable GI_DATA -GI_DATA_ENABLED:libc-musl:armv7a = "False" -GI_DATA_ENABLED:libc-musl:armv7ve = "False" - -do_install:append() { - mv ${D}${bindir}/WebKitWebDriver ${D}${bindir}/WebKitWebDriver3 -} - -PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess" -src_package_preprocess () { - # Trim build paths from comments in generated sources to ensure reproducibility - sed -i -e "s,${WORKDIR},,g" \ - ${B}/JavaScriptCore/DerivedSources/*.h \ - ${B}/JavaScriptCore/DerivedSources/yarr/*.h \ - ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \ - ${B}/WebCore/DerivedSources/*.cpp \ - ${B}/WebKitGTK/DerivedSources/webkit/*.cpp -} - diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.48.0.bb b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.48.0.bb new file mode 100644 index 0000000000..9a4101c4b4 --- /dev/null +++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.48.0.bb @@ -0,0 +1,191 @@ +SUMMARY = "WebKit web rendering engine for the GTK+ platform" +DESCRIPTION = "\ + This recipe builds with Gtk3 (instead of Gtk4) which results in API version 4.1 \ + (having javascriptcoregtk-4.1.pc instead of 6.0). \ +" +HOMEPAGE = "https://www.webkitgtk.org/" +BUGTRACKER = "https://bugs.webkit.org/" + +LICENSE = "BSD-2-Clause & LGPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ + file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ + file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ + file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ + " + +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-Cherry-pick-292304-main-7ffc29624258-.-https-bugs.we.patch \ + file://0001-EnumTraits.h-error-no-matching-function-for-call-to-.patch \ + " +SRC_URI[sha256sum] = "94904a55cf12d44a4e36ceadafff02d46da73d76be9b4769f34cbfdf0eebf88e" + +inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen + +S = "${WORKDIR}/webkitgtk-${PV}" + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}" + +CVE_PRODUCT = "webkitgtk webkitgtk\+" + +DEPENDS += " \ + ruby-native \ + gperf-native \ + unifdef-native \ + cairo \ + harfbuzz \ + jpeg \ + atk \ + libwebp \ + gtk+3 \ + libxslt \ + libtasn1 \ + libnotify \ + gstreamer1.0 \ + gstreamer1.0-plugins-base \ + glib-2.0-native \ + gettext-native \ + " + +# using soup2 builds (JavaScript) API version 4.0 +# using soup3 builds (JavaScript) API version 4.1 +PACKAGECONFIG_SOUP ?= "soup3" +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd wayland x11', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl-or-es', '', d)} \ + enchant \ + libsecret \ + ${PACKAGECONFIG_SOUP} \ + " + +PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native" +PACKAGECONFIG[angle] = "-DUSE_ANGLE_WEBGL=ON,-DUSE_ANGLE_WEBGL=OFF" +PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt" +PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" +PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2" +PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" +PACKAGECONFIG[jpegxl] = " -DUSE_JPEGXL=ON,-DUSE_JPEGXL=OFF,libjxl" +PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/egl" +PACKAGECONFIG[opengl] = "-DENABLE_GRAPHICS_CONTEXT_GL=ON,-DENABLE_GRAPHICS_CONTEXT_GL=OFF,virtual/egl" +PACKAGECONFIG[opengl-or-es] = "-DUSE_OPENGL_OR_ES=ON,-DUSE_OPENGL_OR_ES=OFF" +PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" +PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" +PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" +PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" +PACKAGECONFIG[systemd] = "-DUSE_SYSTEMD=ON,-DUSE_SYSTEMD=off,systemd" +PACKAGECONFIG[reduce-size] = "-DCMAKE_BUILD_TYPE=MinSizeRel,-DCMAKE_BUILD_TYPE=Release,," +PACKAGECONFIG[lcms] = "-DUSE_LCMS=ON,-DUSE_LCMS=OFF,lcms" +PACKAGECONFIG[soup2] = "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,libsoup-2.4,,,soup3" +PACKAGECONFIG[soup3] = ",,libsoup,,,soup2" +PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd" +PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif" +PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad" +PACKAGECONFIG[gamepad] = "-DENABLE_GAMEPAD=ON,-DENABLE_GAMEPAD=OFF,libmanette" +PACKAGECONFIG[webrtc] = "-DENABLE_WEB_RTC=ON,-DENABLE_WEB_RTC=OFF" +PACKAGECONFIG[bubblewrap] = "-DENABLE_BUBBLEWRAP_SANDBOX=ON -DBWRAP_EXECUTABLE=${bindir}/bwrap -DDBUS_PROXY_EXECUTABLE=${bindir}/xdg-dbus-proxy,-DENABLE_BUBBLEWRAP_SANDBOX=OFF,,bubblewrap xdg-dbus-proxy" +PACKAGECONFIG[backtrace] = "-DUSE_LIBBACKTRACE=ON,-DUSE_LIBBACKTRACE=OFF,libbacktrace" +PACKAGECONFIG[sysprof-capture] = "-DUSE_SYSTEM_SYSPROF_CAPTURE=YES,-DUSE_SYSTEM_SYSPROF_CAPTURE=NO,sysprof" +PACKAGECONFIG[speech] = "-DENABLE_SPEECH_SYNTHESIS=ON,-DENABLE_SPEECH_SYNTHESIS=OFF,flite" + +EXTRA_OECMAKE = " \ + -DPORT=GTK \ + -DUSE_GTK4=OFF \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ + ${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \ + -DENABLE_MINIBROWSER=ON \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF \ + " +# pass -g1 to massively reduce the size of the debug symbols (4.3GB to 700M at time of writing) +DEBUG_LEVELFLAG = "-g1" + +# Javascript JIT is not supported on ARC +EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF " +# By default 25-bit "medium" calls are used on ARC +# which is not enough for binaries larger than 32 MiB +CFLAGS:append:arc = " -mlong-calls" +CXXFLAGS:append:arc = " -mlong-calls" + +# Needed for non-mesa graphics stacks when x11 is disabled +CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" + +# Javascript JIT is not supported on powerpc +EXTRA_OECMAKE:append:powerpc = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE:append:powerpc64 = " -DENABLE_JIT=OFF " + +# ARM JIT code does not build on ARMv4/5/6 anymore +EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE:append:armv5 = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF " + +# And for armv7* don't enable it for softfp, because after: +# https://github.com/WebKit/WebKit/commit/a2ec4ef1997d6fafa6ffc607bffb54e76168a918 +# https://bugs.webkit.org/show_bug.cgi?id=242172 +# softfp armv7* fails because WEBASSEMBLY is left enabled by default and JIT gets +# explicitly disabled causing: +# http://errors.yoctoproject.org/Errors/Details/734587/ +# PR was sent upstream, but the end result is the same both JIT and WEBASSEMBLY disabled +# https://github.com/WebKit/WebKit/pull/17447 +EXTRA_OECMAKE:append:armv7a = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}" +EXTRA_OECMAKE:append:armv7r = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}" +EXTRA_OECMAKE:append:armv7ve = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}" + +# JIT does not work on RISCV +EXTRA_OECMAKE:append:riscv32 = " -DENABLE_JIT=OFF" + +# JIT not supported on MIPS either +EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " + +# JIT not supported on X32 +# An attempt was made to upstream JIT support for x32 in +# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as +# unresolved due to limited X32 adoption. +EXTRA_OECMAKE:append:x86-x32 = " -DENABLE_JIT=OFF " + +SECURITY_CFLAGS:remove:aarch64 = "-fpie" +SECURITY_CFLAGS:append:aarch64 = " -fPIE" + +FILES:${PN} += "${libdir}/webkit2gtk-4.*/injected-bundle/libwebkit2gtkinjectedbundle.so" + +RRECOMMENDS:${PN} += "ca-certificates shared-mime-info" + +# http://errors.yoctoproject.org/Errors/Details/20370/ +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" + +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 +# https://bugs.webkit.org/show_bug.cgi?id=159880 +# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. +# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). +ARM_INSTRUCTION_SET:armv7a = "thumb" +ARM_INSTRUCTION_SET:armv7r = "thumb" +ARM_INSTRUCTION_SET:armv7ve = "thumb" + +# ANGLE requires SSE support as of webkit 2.40.x on 32 bit x86 +COMPATIBLE_HOST:x86 = "${@bb.utils.contains_any('TUNE_FEATURES', 'core2 corei7', '.*', 'null', d)}" + +# introspection inside qemu-arm hangs forever on musl/arm builds +# therefore disable GI_DATA +GI_DATA_ENABLED:libc-musl:armv7a = "False" +GI_DATA_ENABLED:libc-musl:armv7ve = "False" + +do_install:append() { + mv ${D}${bindir}/WebKitWebDriver ${D}${bindir}/WebKitWebDriver3 +} + +PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess" +src_package_preprocess () { + # Trim build paths from comments in generated sources to ensure reproducibility + sed -i -e "s,${WORKDIR},,g" \ + ${B}/JavaScriptCore/DerivedSources/*.h \ + ${B}/JavaScriptCore/DerivedSources/yarr/*.h \ + ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \ + ${B}/WebCore/DerivedSources/*.cpp \ + ${B}/WebKitGTK/DerivedSources/webkit/*.cpp +} + -- cgit v1.2.3-54-g00ecf