| Summary: | webkit-gtk 2.3.3 fails on darwin/quartz due to duplicate symbols in WebCore | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Jeremy Huddleston Sequoia <jeremyhu> | ||||||||||
| Component: | WebKitGTK | Assignee: | Zan Dobersek <zan> | ||||||||||
| Status: | RESOLVED FIXED | ||||||||||||
| Severity: | Normal | CC: | cgarcia, gustavo, iain.lane, mrobinson, philip.chimento, pnormand, zan | ||||||||||
| Priority: | P2 | ||||||||||||
| Version: | 528+ (Nightly build) | ||||||||||||
| Hardware: | Unspecified | ||||||||||||
| OS: | Unspecified | ||||||||||||
| URL: | https://trac.macports.org/ticket/42010 | ||||||||||||
| Bug Depends on: | |||||||||||||
| Bug Blocks: | 126492 | ||||||||||||
| Attachments: |
|
||||||||||||
|
Description
Jeremy Huddleston Sequoia
2014-01-11 11:58:30 PST
It looks like these duplicates come from PluginPackageNone.cpp is being included as well as PluginViewGtk.cpp Actually no, the GTK one isn't included. This looks interesting: :info:build ar: warning: libWebCore_la-PluginPackageNone.o truncated to libWebCore_la-P :info:build ar: warning: libWebCore_la-PluginViewNone.o truncated to libWebCore_la-P :info:build ar: warning: lt1-libWebCore_la-PluginPackageNone.o truncated to lt1-libWebCore_ :info:build ar: warning: lt2-libWebCore_la-PluginViewNone.o truncated to lt2-libWebCore_ Actually no, the GTK one isn't included. This looks interesting:
:info:build ar: warning: libWebCore_la-PluginPackageNone.o truncated to libWebCore_la-P
:info:build ar: warning: libWebCore_la-PluginViewNone.o truncated to libWebCore_la-P
:info:build ar: warning: lt1-libWebCore_la-PluginPackageNone.o truncated to lt1-libWebCore_
:info:build ar: warning: lt2-libWebCore_la-PluginViewNone.o truncated to lt2-libWebCore_
It looks like this block gets added in the else for TARGET_X11_OR_WAYLAND as well as the else for TARGET_X11:
webcore_sources += \
Source/WebCore/plugins/PluginPackageNone.cpp \
Source/WebCore/plugins/PluginViewNone.cpp
(In reply to comment #3) > It looks like this block gets added in the else for TARGET_X11_OR_WAYLAND as well as the else for TARGET_X11: > > webcore_sources += \ > Source/WebCore/plugins/PluginPackageNone.cpp \ > Source/WebCore/plugins/PluginViewNone.cpp I'm asking MacPorts users reporting the issue to test with a patch that just removes that from the ! TARGET_X11 block. Created attachment 221303 [details]
quartz-duplicate-symbols.patch
This patch fixes the issue of including the files twice.
Created attachment 221341 [details]
Patch
?(In reply to comment #6) > Created an attachment (id=221341) [details] > Patch Now lists additional build targets for every window target separately. No more else branches. The PluginPackageNone.cpp and PluginViewNone.cpp files are now explicitly added to the build for Quartz, and that is done only once, so it should remove duplicate definitions. Please try the patch out and report back as I'm unable to test on this specific configuration. Comment on attachment 221341 [details]
Patch
We don’t use automake any more.
Yeah, well the cmake build fails on darwin even worse. The fact that you guys ripped out automake before cmake was ready for use is quite frustrating. I wish you heeded my request to have side-by-side automake/cmake for a couple transition releases =( We've decided to just stay at webkit-gtk-1.4.x in MacPorts for the foreseeable future (read: until someone else wants to take over maintainer-ship, if anyone is interested) due to too much maintainance overhead in the switch to cmake. (In reply to comment #9) > Yeah, well the cmake build fails on darwin even worse. > > The fact that you guys ripped out automake before cmake was ready for use is quite frustrating. I wish you heeded my request to have side-by-side automake/cmake for a couple transition releases =( It's likely that the build fails, because we also removed WebKit1. To my knowledge, WebKit2GTK+ only works on systems which support XComposite/XDamage. We don't have support for Darwin yet. WebKit1 lives on in a stable branch. Please see the discussion here: https://lists.webkit.org/pipermail/webkit-gtk/2014-March/001821.html. Created attachment 239184 [details]
Updated patch
(In reply to comment #7) > ?(In reply to comment #6) > > Created an attachment (id=221341) [details] [details] > > Patch > > Now lists additional build targets for every window target separately. No more else branches. > > The PluginPackageNone.cpp and PluginViewNone.cpp files are now explicitly added to the build for Quartz, and that is done only once, so it should remove duplicate definitions. > > Please try the patch out and report back as I'm unable to test on this specific configuration. I did try this out on 2.4.6 and it resolves all but one duplicate symbol. To fix the last one, PluginPackage::determineQuirks(const String&) needs to be removed from Source/WebCore/plugins/PluginPackageNone.cpp. Here's an updated patch. Since WebKit2 does indeed not support WebKitGTK on Quartz yet, would it be possible to have this committed to the 2.4 stable branch as well? Created attachment 239391 [details]
Patch
Here's an updated patch with ChangeLog. Would it be possible to get this reviewed for 2.4.8? Carlos, any thoughts on this one? Commited to 2.4 branch <http://trac.webkit.org/changeset/177885> <http://trac.webkit.org/changeset/177886> <http://trac.webkit.org/changeset/177887> Thanks! On my Ubuntu package build of 2.4.8, the first release with these patches, I'm getting a multiple definition failure: ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginPackageGtk.o: In function `_ZN3WTF6VectorINS_6StringELm0ENS_15CrashOnOverflowEEaSERKS3_': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginPackageGtk.cpp:126: multiple definition of `_ZN7WebCore13PluginPackage4loadEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginPackageNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginPackageNone.cpp:37: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginPackageGtk.o: In function `_ZNK7WebCore13PluginPackage9NPVersionEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginPackageGtk.cpp:199: multiple definition of `_ZNK7WebCore13PluginPackage9NPVersionEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginPackageNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginPackageNone.cpp:43: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginPackageGtk.o: In function `_ZN7WebCore13PluginPackage9fetchInfoEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginPackageGtk.cpp:44: multiple definition of `_ZN7WebCore13PluginPackage9fetchInfoEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginPackageNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginPackageNone.cpp:32: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView15setNPWindowRectERKNS_7IntRectE': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:473: multiple definition of `_ZN7WebCore10PluginView15setNPWindowRectERKNS_7IntRectE' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:65: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView5paintEPNS_15GraphicsContextERKNS_7IntRectE': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:176: multiple definition of `_ZN7WebCore10PluginView5paintEPNS_15GraphicsContextERKNS_7IntRectE' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:49: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView16setParentVisibleEb': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:579: multiple definition of `_ZN7WebCore10PluginView16setParentVisibleEb' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:113: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView18handlePostReadFileERN3WTF6VectorIcLm0ENS1_15CrashOnOverflowEEEjPKc': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:594: multiple definition of `_ZN7WebCore10PluginView18handlePostReadFileERN3WTF6VectorIcLm0ENS1_15CrashOnOverflowEEEjPKc' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:70: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView22platformGetValueStaticE11NPNVariablePvPs': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:625: multiple definition of `_ZN7WebCore10PluginView22platformGetValueStaticE11NPNVariablePvPs' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:80: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView14invalidateRectERKNS_7IntRectE': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:691: multiple definition of `_ZN7WebCore10PluginView14invalidateRectERKNS_7IntRectE' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:90: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView14invalidateRectEP7_NPRect': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:700: multiple definition of `_ZN7WebCore10PluginView14invalidateRectEP7_NPRect' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:85: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView16invalidateRegionEP8_XRegion': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:711: multiple definition of `_ZN7WebCore10PluginView16invalidateRegionEP8_XRegion' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:95: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView15platformDestroyEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:882: multiple definition of `_ZN7WebCore10PluginView15platformDestroyEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:109: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView18updatePluginWidgetEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:121: multiple definition of `_ZN7WebCore10PluginView18updatePluginWidgetEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:117: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView19handleKeyboardEventEPNS_13KeyboardEventE': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:266: multiple definition of `_ZN7WebCore10PluginView19handleKeyboardEventEPNS_13KeyboardEventE' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:53: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView18handleFocusInEventEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:432: multiple definition of `_ZN7WebCore10PluginView18handleFocusInEventEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:122: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView19handleFocusOutEventEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:448: multiple definition of `_ZN7WebCore10PluginView19handleFocusOutEventEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:126: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView16handleMouseEventEPNS_10MouseEventE': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:392: multiple definition of `_ZN7WebCore10PluginView16handleMouseEventEPNS_10MouseEventE' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:57: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView16platformGetValueE11NPNVariablePvPs': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:653: multiple definition of `_ZN7WebCore10PluginView16platformGetValueE11NPNVariablePvPs' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:75: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView11forceRedrawEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:718: multiple definition of `_ZN7WebCore10PluginView11forceRedrawEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:100: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView8setFocusEb': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:156: multiple definition of `_ZN7WebCore10PluginView8setFocusEb' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:37: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView4showEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:164: multiple definition of `_ZN7WebCore10PluginView4showEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:41: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView13platformStartEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:786: multiple definition of `_ZN7WebCore10PluginView13platformStartEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:104: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView4hideEv': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:170: multiple definition of `_ZN7WebCore10PluginView4hideEv' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:45: first defined here ./.libs/../Source/WebCore/plugins/gtk/.libs/libWebCoreGtk_la-PluginViewGtk.o: In function `_ZN7WebCore10PluginView9setParentEPNS_10ScrollViewE': /build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/gtk/PluginViewGtk.cpp:464: multiple definition of `_ZN7WebCore10PluginView9setParentEPNS_10ScrollViewE' ./.libs/../Source/WebCore/plugins/.libs/libWebCore_la-PluginViewNone.o:/build/buildd/webkitgtk-2.4.8/build-3.0/../Source/WebCore/plugins/PluginViewNone.cpp:61: first defined here TARGET_X11 and TARGET_WAYLAND are both defined, so I think that we're getting *None.cpp and *Gtk.cpp both included erroneously. *** Bug 100723 has been marked as a duplicate of this bug. *** |