diff --git a/extra/webkit2gtk-5.0/7916fda00b347ff263fbfe72c065032d1d9b523c.patch b/extra/webkit2gtk-5.0/7916fda00b347ff263fbfe72c065032d1d9b523c.patch new file mode 100644 index 000000000..d4daad41c --- /dev/null +++ b/extra/webkit2gtk-5.0/7916fda00b347ff263fbfe72c065032d1d9b523c.patch @@ -0,0 +1,71 @@ +From 7916fda00b347ff263fbfe72c065032d1d9b523c Mon Sep 17 00:00:00 2001 +From: Fujii Hironori +Date: Tue, 7 Jun 2022 11:42:55 +0000 +Subject: [PATCH] Merge r295034 - WebKitTestRunner shouldn't link object files + of JavaScriptCore and WebCore https://bugs.webkit.org/show_bug.cgi?id=241002 + +Reviewed by Don Olmstead. + +243269@main removed `WebKit` from `WebKitTestRunner_FRAMEWORKS` for +WPE. But, it should be there not to link object files of +JavaScriptCore and WebCore to WebKitTestRunner. In WPE builds, +JavaScriptCore and WebCore API are exported from WebKit shared +library. WebKit consumers shouldn't link with object files of +JavaScriptCore and WebCore. + +However, adding `WebKit` to `WebKitTestRunner_FRAMEWORKS` introduced a +new problem that the object file of LowLevelInterpreter.cpp was linked +into WebKitTestRunner. This problem was fixed by changing +LowLevelInterpreterLib to a STATIC library. + +* Source/JavaScriptCore/CMakeLists.txt: +* Tools/WebKitTestRunner/CMakeLists.txt: +* Tools/WebKitTestRunner/PlatformGTK.cmake: +* Tools/WebKitTestRunner/PlatformWin.cmake: + +Canonical link: https://commits.webkit.org/247617.88@webkitgtk/2.36 +git-svn-id: https://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.36@295340 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/JavaScriptCore/CMakeLists.txt | 12 +++--------- + Tools/WebKitTestRunner/CMakeLists.txt | 1 + + Tools/WebKitTestRunner/PlatformGTK.cmake | 4 ---- + Tools/WebKitTestRunner/PlatformWin.cmake | 4 ---- + 4 files changed, 4 insertions(+), 17 deletions(-) + +diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt +index 238208eb1137..95a1300ce1b3 100644 +--- a/Source/JavaScriptCore/CMakeLists.txt ++++ b/Source/JavaScriptCore/CMakeLists.txt +@@ -456,7 +456,7 @@ if (MSVC AND NOT ENABLE_C_LOOP) + COMMAND ${MASM_EXECUTABLE} ${LLINT_MASM_FLAGS} ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.obj ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.asm + VERBATIM) + list(APPEND JavaScriptCore_SOURCES ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.obj) +- add_library(LowLevelInterpreterLib OBJECT llint/LowLevelInterpreter.cpp) ++ add_library(LowLevelInterpreterLib STATIC llint/LowLevelInterpreter.cpp) + else () + # As there's poor toolchain support for using `.file` directives in + # inline asm (i.e. there's no way to avoid clashes with the `.file` +@@ -465,7 +465,7 @@ else () + # an object file. We only need to do this for LowLevelInterpreter.cpp + # and cmake doesn't allow us to introduce a compiler wrapper for a + # single source file, so we need to create a separate target for it. +- add_library(LowLevelInterpreterLib OBJECT llint/LowLevelInterpreter.cpp ++ add_library(LowLevelInterpreterLib STATIC llint/LowLevelInterpreter.cpp + ${JavaScriptCore_DERIVED_SOURCES_DIR}/${LLIntOutput}) + endif () + +@@ -1496,13 +1496,7 @@ if (CMAKE_COMPILER_IS_GNUCXX AND GCC_OFFLINEASM_SOURCE_MAP) + COMPILE_OPTIONS "-fno-lto") + endif () + +-# When building JavaScriptCore as an object library, we need to make sure the +-# lowlevelinterpreter lib objects get propogated. +-if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "OBJECT") +- list(APPEND JavaScriptCore_PRIVATE_LIBRARIES $) +-else () +- list(APPEND JavaScriptCore_SOURCES $) +-endif () ++list(APPEND JavaScriptCore_PRIVATE_LIBRARIES LowLevelInterpreterLib) + + WEBKIT_COMPUTE_SOURCES(JavaScriptCore) + list(APPEND JavaScriptCore_SOURCES diff --git a/extra/webkit2gtk-5.0/PKGBUILD b/extra/webkit2gtk-5.0/PKGBUILD index 23cfdf097..70c7ffa7b 100644 --- a/extra/webkit2gtk-5.0/PKGBUILD +++ b/extra/webkit2gtk-5.0/PKGBUILD @@ -8,7 +8,7 @@ highmem=1 pkgname=webkit2gtk-5.0 pkgver=2.36.4 -pkgrel=1 +pkgrel=2 pkgdesc="Web content engine for GTK" url="https://webkitgtk.org" arch=(x86_64) @@ -25,15 +25,20 @@ optdepends=('geoclue: Geolocation support' 'gst-plugins-good: media decoding' 'gst-plugins-bad: media decoding' 'gst-libav: nonfree media decoding') -options=(debug !lto) -source=($url/releases/webkitgtk-$pkgver.tar.xz{,.asc}) +options=(debug) +source=($url/releases/webkitgtk-$pkgver.tar.xz{,.asc} + 7916fda00b347ff263fbfe72c065032d1d9b523c.patch) sha256sums=('b6bebe1f85a479d968c19e44a4704622ef8cef61636ad1b2406b77d16ae2e2a8' - 'SKIP') + 'SKIP' + '9b1bcb54553274701f7574b1449a29f3a2d569bfbbaaa5d81526270d1c512f3e') validpgpkeys=('D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3' # Carlos Garcia Campos '5AA3BC334FD7E3369E7C77B291C559DBE4C9123B') # Adrián Pérez de Castro prepare() { cd webkitgtk-$pkgver + + # Unbreak LTO + patch -Rp1 -i ../7916fda00b347ff263fbfe72c065032d1d9b523c.patch } build() {