RESOLVED FIXED 226088
[CMake] Cannot link libTestRunnerInjectedBundle.so in non unified build
https://bugs.webkit.org/show_bug.cgi?id=226088
Summary [CMake] Cannot link libTestRunnerInjectedBundle.so in non unified build
Adrian Perez
Reported 2021-05-21 09:39:52 PDT
Build error (some things a bit formatted for legibility): % CXX=clang++ CC=clang build-webkit --wpe --no-unified-builds ... [1492/1547] Linking CXX shared library lib/libTestRunnerInjectedBundle.so FAILED: lib/libTestRunnerInjectedBundle.so : && /usr/lib/sdk/llvm11/bin/clang++ -fPIC -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -fno-strict-aliasing -fno-exceptions -fno-rtti -O3 -DNDEBUG -Wl,--no-undefined -fuse-ld=gold -Wl,--disable-new-dtags -shared -Wl,-soname,libTestRunnerInjectedBundle.so -o lib/libTestRunnerInjectedBundle.so Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/AccessibilityController.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/AccessibilityTextMarker.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/AccessibilityTextMarkerRange.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/AccessibilityUIElement.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/EventSendingController.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/GCController.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/InjectedBundle.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/InjectedBundleMain.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/InjectedBundlePage.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/TestRunner.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/TextInputController.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/__/__/WebKitTestRunner/DerivedSources/InjectedBundle/JSAccessibilityController.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/__/__/WebKitTestRunner/DerivedSources/InjectedBundle/JSAccessibilityTextMarker.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/__/__/WebKitTestRunner/DerivedSources/InjectedBundle/JSAccessibilityTextMarkerRange.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/__/__/WebKitTestRunner/DerivedSources/InjectedBundle/JSAccessibilityUIElement.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/__/__/WebKitTestRunner/DerivedSources/InjectedBundle/JSEventSendingController.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/__/__/WebKitTestRunner/DerivedSources/InjectedBundle/JSGCController.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/__/__/WebKitTestRunner/DerivedSources/InjectedBundle/JSTestRunner.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/__/__/WebKitTestRunner/DerivedSources/InjectedBundle/JSTextInputController.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/atk/AccessibilityControllerAtk.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/atk/AccessibilityUIElementAtk.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/wpe/ActivateFontsWPE.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/wpe/InjectedBundleWPE.cpp.o Tools/WebKitTestRunner/CMakeFiles/TestRunnerInjectedBundle.dir/InjectedBundle/wpe/TestRunnerWPE.cpp.o -Wl,-rpath,/app/webkit/WebKitBuild/Release/lib lib/libTestRunnerShared.a /usr/lib/x86_64-linux-gnu/libatk-1.0.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libcairo.so lib/libWebCoreTestSupport.a lib/libPAL.a lib/libJavaScriptCore.a lib/libWTF.a lib/libbmalloc.a lib/libWPEWebKit-1.1.so.0.0.0 /usr/lib/x86_64-linux-gnu/libcairo.so /usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so /usr/lib/x86_64-linux-gnu/libicudata.so /usr/lib/x86_64-linux-gnu/libicui18n.so /usr/lib/x86_64-linux-gnu/libicuuc.so -lpthread /usr/lib/x86_64-linux-gnu/libsystemd.so /usr/lib/x86_64-linux-gnu/libxml2.so /usr/lib/x86_64-linux-gnu/libsqlite3.so /usr/lib/x86_64-linux-gnu/libxslt.so /usr/lib/x86_64-linux-gnu/libepoxy.so lib/libANGLE.a -ldl /usr/lib/x86_64-linux-gnu/libwoff2dec.so lib/libxdgmime.a lib/libwebrtc.a /usr/lib/x86_64-linux-gnu/libvpx.so /usr/lib/x86_64-linux-gnu/libevent.so /usr/lib/x86_64-linux-gnu/libopus.so /usr/lib/x86_64-linux-gnu/libopenh264.so /usr/lib/x86_64-linux-gnu/libfontconfig.so /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libharfbuzz-icu.so /usr/lib/x86_64-linux-gnu/libgcrypt.so /usr/lib/x86_64-linux-gnu/libgstapp-1.0.so /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so /usr/lib/x86_64-linux-gnu/libgstpbutils-1.0.so /usr/lib/x86_64-linux-gnu/libgstaudio-1.0.so /usr/lib/x86_64-linux-gnu/libgsttag-1.0.so /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so /usr/lib/x86_64-linux-gnu/libgstgl-1.0.so /usr/lib/x86_64-linux-gnu/libgstcodecparsers-1.0.so /usr/lib/x86_64-linux-gnu/libgstfft-1.0.so /usr/lib/x86_64-linux-gnu/libgcrypt.so /usr/lib/x86_64-linux-gnu/libgstapp-1.0.so /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so /usr/lib/x86_64-linux-gnu/libgstpbutils-1.0.so /usr/lib/x86_64-linux-gnu/libgstaudio-1.0.so /usr/lib/x86_64-linux-gnu/libgsttag-1.0.so /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so /usr/lib/x86_64-linux-gnu/libgstgl-1.0.so /usr/lib/x86_64-linux-gnu/libgstcodecparsers-1.0.so /usr/lib/x86_64-linux-gnu/libgstfft-1.0.so /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so -lgpg-error /usr/lib/x86_64-linux-gnu/libatk-1.0.so /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so /usr/lib/x86_64-linux-gnu/libgio-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libopenjp2.so /usr/lib/x86_64-linux-gnu/libwebpdemux.so /usr/lib/x86_64-linux-gnu/libwebp.so /usr/lib/x86_64-linux-gnu/libavif.so /usr/lib/x86_64-linux-gnu/libsoup-3.0.so /usr/lib/x86_64-linux-gnu/libwpe-1.0.so /usr/lib/x86_64-linux-gnu/libtasn1.so /usr/lib/x86_64-linux-gnu/liblcms2.so /usr/lib/x86_64-linux-gnu/libWPEBackend-fdo-1.0.so /usr/lib/x86_64-linux-gnu/libopenxr_loader.so && : lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::InspectorStubFrontend::InspectorStubFrontend(WebCore::Page&, WTF::RefPtr<WebCore::DOMWindow, WTF::RawPtrTraits<WebCore::DOMWindow>, WTF::DefaultRefDerefTraits<WebCore::DOMWindow> >&&): error: undefined reference to 'vtable for WebCore::InspectorFrontendClientLocal::Settings' /usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::InspectorStubFrontend::InspectorStubFrontend(WebCore::Page&, WTF::RefPtr<WebCore::DOMWindow, WTF::RawPtrTraits<WebCore::DOMWindow>, WTF::DefaultRefDerefTraits<WebCore::DOMWindow> >&&): error: undefined reference to 'WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal(WebCore::InspectorController*, WebCore::Page*, std::unique_ptr<WebCore::InspectorFrontendClientLocal::Settings, std::default_delete<WebCore::InspectorFrontendClientLocal::Settings> >)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::InspectorStubFrontend::~InspectorStubFrontend(): error: undefined reference to 'WebCore::Inspector FrontendClientLocal::inspectedPage() const' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::InspectorStubFrontend::~InspectorStubFrontend(): error: undefined reference to 'WebCore::InspectorFrontendClientLocal::~InspectorFrontendClientLocal()' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::InspectorStubFrontend::closeWindow(): error: undefined reference to 'WebCore::InspectorFrontendClientLocal::inspectedPage() const' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::createRecorderMockSource(WebCore::MediaStreamPrivate&, WebCore::MediaRecorderPrivateOptions const&): error: undefined reference to 'WebCore::MediaRecorderPrivateMock::MediaRecorderPrivateMock(WebCore::MediaStreamPrivate&)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::initializeMockMediaSource(): error: undefined reference to 'WebCore::MockMediaPlayerMediaSource::registerMediaEngine(void (*)(std::unique_ptr<WebCore::MediaPlayerFactory, std::default_delete<WebCore::MediaPlayerFactory> >&&))' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::setPlatformMomentumScrollingPredictionEnabled(bool): error: undefined reference to 'WebCore::ScrollingMomentumCalculator::setPlatformMomentumScrollingPredictionEnabled(bool)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::parseHEVCCodecParameters(WTF::StringView): error: undefined reference to 'WebCore::parseHEVCCodecParameters(WTF::StringView)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::parseDoViCodecParameters(WTF::StringView): error: undefined reference to 'WebCore::parseDoViCodecParameters(WTF::StringView)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::parseVPCodecParameters(WTF::StringView): error: undefined reference to 'WebCore::parseVPCodecParameters(WTF::StringView)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::rangeContainsNode(WebCore::AbstractRange const&, WebCore::Node&, WebCore::Internals::TreeType): error: undefined reference to 'WebCore::makeSimpleRange(WebCore::AbstractRange const&)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::rangeContainsBoundaryPoint(WebCore::AbstractRange const&, WebCore::Node&, unsigned int, WebCore::Internals::TreeType): error: undefined reference to 'WebCore::makeSimpleRange(WebCore::AbstractRange const&)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::rangeContainsRange(WebCore::AbstractRange const&, WebCore::AbstractRange const&, WebCore::Internals::TreeType): error: undefined reference to 'WebCore::makeSimpleRange(WebCore::AbstractRange const&)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: function WebCore::Internals::rangeContainsRange(WebCore::AbstractRange const&, WebCore::AbstractRange const&, WebCore::Internals::TreeType): error: undefined reference to 'WebCore::makeSimpleRange(WebCore::AbstractRange const&)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::windowObjectCleared()' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::frontendLoaded()' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::pagePaused()' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::pageUnpaused()' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::moveWindowBy(float, float)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::inspectionLevel() const' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::resetState()' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::userInterfaceLayoutDirection() const' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to WebCore::InspectorFrontendClientLocal::requestSetDockSide(WebCore::InspectorFrontendClient::DockSide)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::changeAttachedWindowHeight(unsigned int)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::changeAttachedWindowWidth(unsigned int)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::changeSheetRect(WebCore::FloatRect const&)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::openURLExternally(WTF::String const&)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::sendMessageToBackend(WTF::String const&)' lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/testing/Internals.cpp.o):Internals.cpp: vtable for WebCore::InspectorStubFrontend: error: undefined reference to 'WebCore::InspectorFrontendClientLocal::isUnderTest()' clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
Attachments
WIP Patch (1.88 KB, patch)
2021-05-22 08:26 PDT, Adrian Perez
no flags
Tentative patch (5.64 KB, patch)
2021-12-13 20:43 PST, Lauro Moura
no flags
Rebased patch (6.41 KB, patch)
2021-12-14 05:10 PST, Lauro Moura
no flags
Rebased patch with new nonunified fixes (8.17 KB, patch)
2022-01-18 20:09 PST, Lauro Moura
no flags
Updated patch with different cmake approach (8.79 KB, patch)
2022-01-20 16:36 PST, Lauro Moura
no flags
Adrian Perez
Comment 1 2021-05-22 08:26:29 PDT
Created attachment 429411 [details] WIP Patch
Adrian Perez
Comment 2 2021-05-22 11:13:09 PDT
(In reply to Adrian Perez from comment #1) > Created attachment 429411 [details] > WIP Patch This patch solves the underlinking issue but then it runs in a multiple definition issue: /usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld.gold: error: lib/libWebCore.a(lib/../Source/WebCore/CMakeFiles/WebCore.dir/platform/audio/PlatformMediaSession.cpp.o): multiple definition of 'WebCore::convertEnumerationToString(WebCore::PlatformMediaSession::State)' /usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld.gold: lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/WebCoreTestSupport.dir/__/__/WebCore/DerivedSources/JSInternals.cpp.o): previous definition here
Lauro Moura
Comment 3 2021-12-10 21:44:35 PST
(In reply to Adrian Perez from comment #2) > (In reply to Adrian Perez from comment #1) > > Created attachment 429411 [details] > > WIP Patch > > This patch solves the underlinking issue but then it runs in a multiple > definition issue: > > /usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown- > linux-gnu/bin/ld.gold: error: > > lib/libWebCore.a(lib/../Source/WebCore/CMakeFiles/WebCore.dir/platform/audio/ > PlatformMediaSession.cpp.o): > multiple definition of > 'WebCore::convertEnumerationToString(WebCore::PlatformMediaSession::State)' > /usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown- > linux-gnu/bin/ld.gold: > > lib/libWebCoreTestSupport.a(lib/../Source/WebCore/CMakeFiles/ > WebCoreTestSupport.dir/__/__/WebCore/DerivedSources/JSInternals.cpp.o): > previous definition here I've got this with GTK too. This seems to be caused by a collision between convertEnumerationToString for Internals::MediaSessionState (generated) and for PlatformMediaSession::State (manual). The internals enum is an alias to the Platform one. Searching through the Internals idl, this is the only case of a enum declared in the IDL that's both an alias to an "external" enum AND defines a manual convertEnumerationToString. These two enums seems to be quite old (pre-2018), didn't a few months ago GTK used to build non-unified to the end?
Lauro Moura
Comment 4 2021-12-13 20:43:14 PST
Created attachment 447105 [details] Tentative patch Patch based on Adrian's, building unified/non-unified on top of r286914 (Last sunday). It replaces the alias for the MediaSession enum in the Internals.h with separate enum with the same values. Not sure if it's the best approach, though.
Lauro Moura
Comment 5 2021-12-14 05:10:50 PST
Created attachment 447125 [details] Rebased patch
Adrian Perez
Comment 6 2021-12-14 05:18:24 PST
Comment on attachment 447125 [details] Rebased patch LGTM with a nit to change before landing -- and thanks to looking into this, I hadn't had the time to bring myself to fix it yet 💪️ View in context: https://bugs.webkit.org/attachment.cgi?id=447125&action=review > Source/WebCore/testing/Internals.h:1006 > + // directly with libWebCore (e.g. with non-unified builds) I think we don't want to mention here anything about unified vs. non-unified builds, because with an unlucky combination of unified sources the issue could come up anyway. The rest of the comment is good to have it here for clarity, as this may not be obvious to the people reading the code =)
Lauro Moura
Comment 7 2021-12-15 14:03:03 PST
The WinCairo EWS failure is mostly composed of errors like these: ``` JSInternals.cpp.obj : error LNK2001: unresolved external symbol "protected: static struct JSC::ClassInfo const WebCore::JSFile::s_info" (?s_info@JSFile@WebCore@@1UClassInfo@JSC@@B) ``` Where `s_info` is defined in the derived source `JSFile.cpp`: ``` template<> const ClassInfo JSFileDOMConstructor::s_info = { "File", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSFileDOMConstructor) }; ``` Could find out why this is happening yet (Tried building on Windows locally but it failed before this step).
Lauro Moura
Comment 8 2022-01-18 20:09:17 PST
Created attachment 449457 [details] Rebased patch with new nonunified fixes
Joseph Griego
Comment 9 2022-01-20 13:56:57 PST
*** Bug 235416 has been marked as a duplicate of this bug. ***
Lauro Moura
Comment 10 2022-01-20 16:36:14 PST
Created attachment 449623 [details] Updated patch with different cmake approach Instead of pulling WebCore as WebCoreTestSupport dependency directly, make WTR/WTRInjected bundle pull it instead. As the CMake-related code changed, cleared the Reviewed-By field (will wait for green bubbles before rq'ing it).
Adrian Perez
Comment 11 2022-01-21 03:11:52 PST
Comment on attachment 449623 [details] Updated patch with different cmake approach Wooohoo! I'm stoked to see this issue being axed, good one Lauro!
EWS
Comment 12 2022-01-21 05:12:41 PST
Committed r288361 (246265@main): <https://commits.webkit.org/246265@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 449623 [details].
Radar WebKit Bug Importer
Comment 13 2022-01-21 05:13:21 PST
Note You need to log in before you can comment on or make changes to this bug.