Bug 212590 - [GTK] error: undefined reference to 'WTF::ObjectIdentifier<WebCore::PageIdentifierType>::ObjectIdentifier() when built with GCC 7
Summary: [GTK] error: undefined reference to 'WTF::ObjectIdentifier<WebCore::PageIdent...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-01 02:41 PDT by efferre
Modified: 2021-02-11 06:56 PST (History)
4 users (show)

See Also:


Attachments
build.log.gz (14.17 KB, application/x-gzip)
2020-06-01 02:41 PDT, efferre
no flags Details
Patch (12.95 KB, patch)
2020-06-20 09:15 PDT, Michael Catanzaro
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description efferre 2020-06-01 02:41:17 PDT
Created attachment 400726 [details]
build.log.gz

I get the following build failure:

/var/tmp/portage/net-libs/webkit-gtk-2.28.2/work/webkitgtk-2.28.2/Source/WebKit/WebProcess/Inspector/WebInspector.cpp:170: error: undefined reference to 'WTF::ObjectIdentifier<WebCore::PageIdentifierType>::ObjectIdentifier()'
/var/tmp/portage/net-libs/webkit-gtk-2.28.2/work/webkitgtk-2.28.2/Source/WebKit/WebProcess/Inspector/WebInspector.cpp:170: error: undefined reference to 'WTF::ObjectIdentifier<WebCore::ElementIdentifierType>::ObjectIdentifier()'
/var/tmp/portage/net-libs/webkit-gtk-2.28.2/work/webkitgtk-2.28.2/Source/WebKit/WebProcess/Plugins/PluginView.cpp:1393: error: undefined reference to 'WTF::ObjectIdentifier<WebCore::PageIdentifierType>::ObjectIdentifier()'
/var/tmp/portage/net-libs/webkit-gtk-2.28.2/work/webkitgtk-2.28.2/Source/WebKit/WebProcess/Plugins/PluginView.cpp:1393: error: undefined reference to 'WTF::ObjectIdentifier<WebCore::ElementIdentifierType>::ObjectIdentifier()'
/var/tmp/portage/net-libs/webkit-gtk-2.28.2/work/webkitgtk-2.28.2/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:785: error: undefined reference to 'WTF::ObjectIdentifier<WebCore::PageIdentifierType>::ObjectIdentifier()'
/var/tmp/portage/net-libs/webkit-gtk-2.28.2/work/webkitgtk-2.28.2/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:785: error: undefined reference to 'WTF::ObjectIdentifier<WebCore::ElementIdentifierType>::ObjectIdentifier()'
/var/tmp/portage/net-libs/webkit-gtk-2.28.2/work/webkitgtk-2.28.2/Source/WebKit/WebProcess/WebCoreSupport/WebContextMenuClient.cpp:70: error: undefined reference to 'WTF::ObjectIdentifier<WebCore::PageIdentifierType>::ObjectIdentifier()'
/var/tmp/portage/net-libs/webkit-gtk-2.28.2/work/webkitgtk-2.28.2/Source/WebKit/WebProcess/WebCoreSupport/WebContextMenuClient.cpp:70: error: undefined reference to 'WTF::ObjectIdentifier<WebCore::ElementIdentifierType>::ObjectIdentifier()'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

I am attaching a stripped build log file, the problem occurs with gcc-7 but not with gcc-8 or gcc-9
Comment 1 Michael Catanzaro 2020-06-20 08:53:15 PDT
You have to set the component to WebKitGTK if you want devs to look at your bug.

I'm working on a hack solution to this, but I couldn't find any way to solve this in a way that would be acceptable to upstream, so I think we just need to require GCC 8.
Comment 2 Michael Catanzaro 2020-06-20 09:15:33 PDT
Created attachment 402384 [details]
Patch

This is not proposed for review because it's ridiculous. I couldn't find another way, though.
Comment 3 Pablo Saavedra 2021-02-09 02:18:06 PST
(In reply to Michael Catanzaro from comment #1)
> You have to set the component to WebKitGTK if you want devs to look at your
> bug.
> 
> I'm working on a hack solution to this, but I couldn't find any way to solve
> this in a way that would be acceptable to upstream, so I think we just need
> to require GCC 8.

I suppose this is going to lost all the relevance soon in April but current agreement was to keep GCC7 as an valid compiler to build Webkit at least until the EOL of Ubuntu 18.04:

  (GCC 7 OR Clang 6) AND libstdc++ 7, the versions in Ubuntu 18.04, will be supported until April 2021


Ref: https://trac.webkit.org/wiki/WebKitGTK/GCCRequirement
Comment 4 Adrian Perez 2021-02-11 00:56:14 PST
FWIW, I just tried a build with GCC 7.5.0 and did not hit this issue.
Could it be some GCC issue that is unpatched in the version distributed
with Ubuntu?
Comment 5 Pablo Saavedra 2021-02-11 06:53:56 PST
(In reply to Adrian Perez from comment #4)
> FWIW, I just tried a build with GCC 7.5.0 and did not hit this issue.
> Could it be some GCC issue that is unpatched in the version distributed
> with Ubuntu?


You are right. I saw the build working fine in https://build-webkit.igalia.com/builders/GTK%20Linux%2064-bit%20Release%20Packaging%20Stable%20%28Ubuntu%2018.04%29?numbuilds=200.

This bug originally comes from a issue in the Gentoo tracker ('WTF::ObjectIdentifier<WebCore::PageIdentifierType>::ObjectIdentifier()).
I was be able to reproduce the error in Yocto (Rocko) as well using GCC7 (version 7.3). Could be that the case in Gentoo too?  


* https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.4
* https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.5
Comment 6 Pablo Saavedra 2021-02-11 06:56:52 PST
No. I looks like Gentoo is in GCC 7.5 nowadays: https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/gcc/gcc-7.5.0-r1.ebuild