git: 743cdc309608 - main - www/webkit2-gtk3: fix build with clang 19
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 12 Aug 2024 19:39:24 UTC
The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/ports/commit/?id=743cdc3096083c022157d3da0291a878f1f8b58b commit 743cdc3096083c022157d3da0291a878f1f8b58b Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-08-10 11:50:00 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-08-12 19:37:36 +0000 www/webkit2-gtk3: fix build with clang 19 Clang 19 now implements CWG 96 [1], which requires a template argument list after a 'template' keyword, resulting in errors similar to: /wrkdirs/usr/ports/www/webkit2-gtk3/work/webkitgtk-2.34.6/Source/JavaScriptCore/assembler/AbstractMacroAssembler.h:974:65: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw] 974 | AssemblerType::repatchCompact(dataLabelCompact.template dataLocation(), value); | ^ In these cases, appending "<>" is enough to satisfy the constraint. Upstream has committed a fix to their main branch [2], but since some code has moved around, and other functions have been removed, it does not apply cleanly to 2.34.6. Therefore, apply only the necessary fixes manually for now. [1] https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#96 [2] https://github.com/WebKit/WebKit/commit/62b6e2db547e PR: 280728 Approved by: fluffy (maintainer) MFH: 2024Q3 --- ...vaScriptCore_assembler_AbstractMacroAssembler.h | 11 +++++ .../patch-Source_JavaScriptCore_llint_LLIntData.h | 56 ++++++++++++++++++++++ .../patch-Source_JavaScriptCore_runtime_JSCast.h | 20 ++++++++ 3 files changed, 87 insertions(+) diff --git a/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_assembler_AbstractMacroAssembler.h b/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_assembler_AbstractMacroAssembler.h new file mode 100644 index 000000000000..9e70156211dd --- /dev/null +++ b/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_assembler_AbstractMacroAssembler.h @@ -0,0 +1,11 @@ +--- Source/JavaScriptCore/assembler/AbstractMacroAssembler.h.orig 2021-10-21 08:52:07 UTC ++++ Source/JavaScriptCore/assembler/AbstractMacroAssembler.h +@@ -971,7 +971,7 @@ class AbstractMacroAssembler : public AbstractMacroAss + template<PtrTag tag> + static void repatchCompact(CodeLocationDataLabelCompact<tag> dataLabelCompact, int32_t value) + { +- AssemblerType::repatchCompact(dataLabelCompact.template dataLocation(), value); ++ AssemblerType::repatchCompact(dataLabelCompact.template dataLocation<>(), value); + } + + template<PtrTag tag> diff --git a/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_llint_LLIntData.h b/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_llint_LLIntData.h new file mode 100644 index 000000000000..614316d74a1f --- /dev/null +++ b/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_llint_LLIntData.h @@ -0,0 +1,56 @@ +--- Source/JavaScriptCore/llint/LLIntData.h.orig 2021-10-21 08:52:07 UTC ++++ Source/JavaScriptCore/llint/LLIntData.h +@@ -217,7 +217,7 @@ ALWAYS_INLINE LLIntCode getCodeFunctionPtr(OpcodeID op + #if COMPILER(MSVC) + return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).executableAddress()); + #else +- return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).template executableAddress()); ++ return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).template executableAddress<>()); + #endif + } + +@@ -227,7 +227,7 @@ ALWAYS_INLINE LLIntCode getWide16CodeFunctionPtr(Opcod + #if COMPILER(MSVC) + return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).executableAddress()); + #else +- return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).template executableAddress()); ++ return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).template executableAddress<>()); + #endif + } + +@@ -237,7 +237,7 @@ ALWAYS_INLINE LLIntCode getWide32CodeFunctionPtr(Opcod + #if COMPILER(MSVC) + return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).executableAddress()); + #else +- return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).template executableAddress()); ++ return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).template executableAddress<>()); + #endif + } + +@@ -328,7 +328,7 @@ ALWAYS_INLINE LLIntCode getCodeFunctionPtr(WasmOpcodeI + #if COMPILER(MSVC) + return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).executableAddress()); + #else +- return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).template executableAddress()); ++ return reinterpret_cast<LLIntCode>(getCodePtr<tag>(opcodeID).template executableAddress<>()); + #endif + } + +@@ -338,7 +338,7 @@ ALWAYS_INLINE LLIntCode getWide16CodeFunctionPtr(WasmO + #if COMPILER(MSVC) + return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).executableAddress()); + #else +- return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).template executableAddress()); ++ return reinterpret_cast<LLIntCode>(getWide16CodePtr<tag>(opcodeID).template executableAddress<>()); + #endif + } + +@@ -348,7 +348,7 @@ ALWAYS_INLINE LLIntCode getWide32CodeFunctionPtr(WasmO + #if COMPILER(MSVC) + return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).executableAddress()); + #else +- return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).template executableAddress()); ++ return reinterpret_cast<LLIntCode>(getWide32CodePtr<tag>(opcodeID).template executableAddress<>()); + #endif + } + diff --git a/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_runtime_JSCast.h b/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_runtime_JSCast.h new file mode 100644 index 000000000000..94af6690b9b3 --- /dev/null +++ b/www/webkit2-gtk3/files/patch-Source_JavaScriptCore_runtime_JSCast.h @@ -0,0 +1,20 @@ +--- Source/JavaScriptCore/runtime/JSCast.h.orig 2021-10-21 08:52:07 UTC ++++ Source/JavaScriptCore/runtime/JSCast.h +@@ -171,7 +171,7 @@ bool inherits(VM& vm, From* from) + bool inherits(VM& vm, From* from) + { + using Dispatcher = InheritsTraits<Target>; +- return Dispatcher::template inherits(vm, from); ++ return Dispatcher::template inherits<>(vm, from); + } + + } // namespace JSCastingHelpers +@@ -180,7 +180,7 @@ To jsDynamicCast(VM& vm, From* from) + To jsDynamicCast(VM& vm, From* from) + { + using Dispatcher = JSCastingHelpers::InheritsTraits<typename std::remove_cv<typename std::remove_pointer<To>::type>::type>; +- if (LIKELY(Dispatcher::template inherits(vm, from))) ++ if (LIKELY(Dispatcher::template inherits<>(vm, from))) + return static_cast<To>(from); + return nullptr; + }