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