New issue
Advanced search Search tips

Issue 601282 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug

Blocked on:
issue 601108



Sign in to add a comment

link failure on Win (unresolved external symbol WTF::HashTraits<class WTF::String>::isEmptyValue)

Project Member Reported by shinyak@chromium.org, Apr 7 2016

Issue description

This is happening only on component build.

webcore_shared.OriginTrials.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl WTF::HashTraits<class WTF::String>::isEmptyValue(class WTF::String const &)" (?isEmptyValue@?$HashTraits@VString@WTF@@@WTF@@SA_NABVString@2@@Z)

I see goma canary bots, but not sure this is limited to goma canary bots.

https://build.chromium.org/p/chromium.fyi/builders/CrWinGoma(dll)
https://build.chromium.org/p/chromium.fyi/builders/CrWin7Goma(dll)
https://build.chromium.org/p/chromium.fyi/builders/CrWin7Goma(clbr)

Starting from https://build.chromium.org/p/chromium.fyi/builders/CrWin7Goma%28dll%29/builds/20712

culprit is this (because updating OriginTrial):
https://chromium.googlesource.com/chromium/src/+/b03579678fa2678748d5cbcec2e18a8a08e40701

 
Cc: yyanagisawa@chromium.org ukai@chromium.org tikuta@chromium.org
mek, can you take a look?

Comment 3 by mek@chromium.org, Apr 7 2016

No idea why anything in OriginTrials.cpp would need string hash traits...

Comment 4 by kbr@chromium.org, Apr 8 2016

Cc: thakis@chromium.org pkasting@chromium.org
 Issue 601656  has been merged into this issue.

Comment 5 by kbr@chromium.org, Apr 8 2016

Blockedon: 601108

Comment 6 by kbr@chromium.org, Apr 8 2016

No idea why either, but maybe this static function needs to be moved into a .cpp and explicitly exported.

Owner: mek@chromium.org
mek, can you please revert if this is tricky to fix? leaving the component build broken for a day is not so good.

Comment 8 by mek@chromium.org, Apr 8 2016

I have no idea if this is tricky to fix. I don't have a Windows environment set up and there don't seem to be try bots for this configuration, so there really isn't anything I can do to fix it. Hopefully somebody that is having this issue can try to figure out what is going on.
I'll try to take a look tomorrow. I clicked revert until then.

Comment 10 by mek@chromium.org, Apr 8 2016

Thanks! Sounds good to me.

Comment 11 by kbr@chromium.org, Apr 8 2016

This change fixes the build failure. There's probably a better fix that would make inclusion of WTFString.h less error prone.


diff --git a/third_party/WebKit/Source/build/scripts/templates/OriginTrials.h.tmpl b/third_party/WebKit/Source/build/scripts/templates/OriginTrials.h.tmpl
index 62f1733..7b4a39e 100644
--- a/third_party/WebKit/Source/build/scripts/templates/OriginTrials.h.tmpl
+++ b/third_party/WebKit/Source/build/scripts/templates/OriginTrials.h.tmpl
@@ -5,6 +5,7 @@
 #define OriginTrials_h
 
 #include "core/CoreExport.h"
+#include "wtf/text/StringHash.h"
 #include "wtf/text/WTFString.h"
 
 namespace blink {

revert is failing? https://codereview.chromium.org/1875593003/
I've made a patch to do the same thing as comment 11.
https://codereview.chromium.org/1863323004
Project Member

Comment 14 by bugdroid1@chromium.org, Apr 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a34111d476c333a6e7b182f0d703e67d8172d2d3

commit a34111d476c333a6e7b182f0d703e67d8172d2d3
Author: shinyak <shinyak@google.com>
Date: Fri Apr 08 06:39:23 2016

Windows component build fix: OriginTraials.h

Fix the following error:

webcore_shared.OriginTrials.obj : error LNK2001: unresolved external
symbol "public: static bool __cdecl WTF::HashTraits<class WTF::String>
::isEmptyValue(class WTF::String const &)"
(?isEmptyValue@?$HashTraits@VString@WTF@@@WTF@@SA_NABVString@2@@Z)

TBR=iclelland@chromium.org,rbyers@chromium.org,mek@chromium.org
BUG= 601282 

Review URL: https://codereview.chromium.org/1863323004

Cr-Commit-Position: refs/heads/master@{#386009}

[modify] https://crrev.com/a34111d476c333a6e7b182f0d703e67d8172d2d3/third_party/WebKit/Source/build/scripts/templates/OriginTrials.h.tmpl

Comment 15 by h...@chromium.org, Apr 8 2016

Status: Fixed (was: Untriaged)
Project Member

Comment 16 by bugdroid1@chromium.org, Apr 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/079a5f825dc266bc78beab35ba1baa54fb363088

commit 079a5f825dc266bc78beab35ba1baa54fb363088
Author: shinyak <shinyak@google.com>
Date: Fri Apr 15 03:16:12 2016

Move StringHash.h include to OriginTrialContext.h

This is a follow-up patch for r386009.

We added StringHash.h include in OriginTrial.h to fix build before.
However, this is used for HashSet<String>, and actually
OriginTrialContext.h has HashSet<String>.

So, we should have added StirngHash.h in OriginTrialContext.h
instead of OriginTrials.h.

BUG= 601282 

Review URL: https://codereview.chromium.org/1879993002

Cr-Commit-Position: refs/heads/master@{#387535}

[modify] https://crrev.com/079a5f825dc266bc78beab35ba1baa54fb363088/third_party/WebKit/Source/build/scripts/templates/OriginTrials.h.tmpl
[modify] https://crrev.com/079a5f825dc266bc78beab35ba1baa54fb363088/third_party/WebKit/Source/core/origin_trials/OriginTrialContext.h

Sign in to add a comment