Bug 202722 - [Win] error LNK2019: unresolved external symbol "public: __cdecl JSC::Strong<enum JSC::Unknown>::Strong<enum JSC::Unknown>(class JSC::VM &,class JSC::JSValue)"
Summary: [Win] error LNK2019: unresolved external symbol "public: __cdecl JSC::Strong<...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Fujii Hironori
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2019-10-09 00:31 PDT by Fujii Hironori
Modified: 2019-10-09 02:43 PDT (History)
7 users (show)

See Also:


Attachments
Patch for landing (3.98 KB, patch)
2019-10-09 00:54 PDT, Fujii Hironori
no flags Details | Formatted Diff | Diff
Patch for landing (1.36 KB, patch)
2019-10-09 01:01 PDT, Fujii Hironori
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Fujii Hironori 2019-10-09 00:31:48 PDT
[Win] error LNK2019: unresolved external symbol "public: __cdecl JSC::Strong<enum JSC::Unknown>::Strong<enum JSC::Unknown>(class JSC::VM &,class JSC::JSValue)"

I'm observing the following linkage error by building release builds of WinCairo port with clang-cl.
r250776

WebCore.lib(UnifiedSource-3a52ce78-61.cpp.obj) : error LNK2019: unresolved external symbol "public: __cdecl JSC::Strong<enum JSC::Unknown>::Strong<enum JSC::Unknown>(class JSC::VM &,class JSC::JSValue)" (??0?$Strong@W4Unknown@JSC@@@JSC@@QEAA@AEAVVM@1@VJSValue@1@@Z) referenced in function "public: static class WTF::Optional<class JSC::Strong<enum JSC::Unknown> > __cdecl WebCore::VariadicConverter<struct WebCore::IDLAny>::convert(class JSC::CallFrame &,class JSC::JSValue)" (?convert@?$VariadicConverter@UIDLAny@WebCore@@@WebCore@@SA?AV?$Optional@V?$Strong@W4Unknown@JSC@@@JSC@@@WTF@@AEAVCallFrame@JSC@@VJSValue@6@@Z)
bin64\WebKit.dll : fatal error LNK1120: 1 unresolved externals
Comment 1 Fujii Hironori 2019-10-09 00:32:20 PDT
This is a similar issue with Bug 193481.

Bug 193481 – Add 'inline' specifier for declarations for its definitions are defined in separate headers (…Inlines.h)
Comment 2 Fujii Hironori 2019-10-09 00:33:05 PDT
Here is the content of Release/WebCore/DerivedSources/unified-sources/UnifiedSource-3a52ce78-61.cpp

#include "JSOESTextureFloatLinear.cpp"
#include "JSOESTextureHalfFloat.cpp"
#include "JSOESTextureHalfFloatLinear.cpp"
#include "JSOESVertexArrayObject.cpp"
#include "JSOfflineAudioCompletionEvent.cpp"
#include "JSOfflineAudioContext.cpp"
#include "JSOffscreenCanvas.cpp"
#include "JSOffscreenCanvasRenderingContext2D.cpp"
Comment 3 Fujii Hironori 2019-10-09 00:33:59 PDT
WebCore::VariadicConverter<struct WebCore::IDLAny>::convert is referred from JSOffscreenCanvasOwner::finalize

?finalize@JSOffscreenCanvasOwner@WebCore@@UEAAXV?$Handle@W4Unknown@JSC@@@JSC@@PEAX@Z (public: virtual void __cdecl WebCore::JSOffscreenCanvasOwner::finalize(class JSC::Handle<enum JSC::Unknown>,void *)):
  0000000000000000: 56                 push        rsi
  0000000000000001: 48 83 EC 30        sub         rsp,30h
  0000000000000005: 48 8B 05 00 00 00  mov         rax,qword ptr [__security_cookie]
                    00
  000000000000000C: 48 31 E0           xor         rax,rsp
  000000000000000F: 48 89 44 24 28     mov         qword ptr [rsp+28h],rax
  0000000000000014: 48 8B 02           mov         rax,qword ptr [rdx]
  0000000000000017: 48 8B 70 18        mov         rsi,qword ptr [rax+18h]
  000000000000001B: 41 80 78 40 00     cmp         byte ptr [r8+40h],0
  0000000000000020: 74 27              je          0000000000000049
  0000000000000022: 48 83 7E 08 00     cmp         qword ptr [rsi+8],0
  0000000000000027: 74 3D              je          0000000000000066
  0000000000000029: 48 83 C6 08        add         rsi,8
  000000000000002D: 48 8B 4C 24 28     mov         rcx,qword ptr [rsp+28h]
  0000000000000032: 48 31 E1           xor         rcx,rsp
  0000000000000035: E8 00 00 00 00     call        __security_check_cookie
  000000000000003A: 48 89 F1           mov         rcx,rsi
  000000000000003D: 48 83 C4 30        add         rsp,30h
  0000000000000041: 5E                 pop         rsi
  0000000000000042: 48 FF 25 00 00 00  jmp         qword ptr [__imp_?weakClearSlowCase@JSC@@YAXAEAPEAVWeakImpl@1@@Z]
                    00
  0000000000000049: 48 83 C6 D0        add         rsi,0FFFFFFFFFFFFFFD0h
  000000000000004D: 48 89 74 24 20     mov         qword ptr [rsp+20h],rsi
  0000000000000052: 49 83 C0 28        add         r8,28h
  0000000000000056: 48 8D 54 24 20     lea         rdx,[rsp+20h]
  000000000000005B: 4C 89 C1           mov         rcx,r8
  000000000000005E: 49 89 C0           mov         r8,rax
  0000000000000061: E8 00 00 00 00     call        ??$weakRemove@V?$HashMap@PEAXV?$Weak@VJSObject@JSC@@@JSC@@U?$PtrHash@PEAX@WTF@@U?$HashTraits@PEAX@4@U?$HashTraits@V?$Weak@VJSObject@JSC@@@JSC@@@4@@WTF@@PEAXPEAVJSOffscreenCanvas@WebCore@@@JSC@@YAXAEAV?$HashMap@PEAXV?$Weak@VJSObject@JSC@@@JSC@@U?$PtrHash@PEAX@WTF@@U?$HashTraits@PEAX@4@U?$HashTraits@V?$Weak@VJSObject@JSC@@@JSC@@@4@@WTF@@AEBQEAXPEAVJSOffscreenCanvas@WebCore@@@Z
  0000000000000066: 48 8B 4C 24 28     mov         rcx,qword ptr [rsp+28h]
  000000000000006B: 48 31 E1           xor         rcx,rsp
  000000000000006E: E8 00 00 00 00     call        __security_check_cookie
  0000000000000073: 90                 nop
  0000000000000074: 48 83 C4 30        add         rsp,30h
  0000000000000078: 5E                 pop         rsi
  0000000000000079: C3                 ret
Comment 4 Fujii Hironori 2019-10-09 00:47:02 PDT
JSOffscreenCanvas.cpp has #include <JavaScriptCore/JSCInlines.h>, but JSCInlines.h doesn't include StrongInlines.h.
Comment 5 Fujii Hironori 2019-10-09 00:54:47 PDT
Created attachment 380506 [details]
Patch for landing
Comment 6 Fujii Hironori 2019-10-09 01:01:29 PDT
Created attachment 380507 [details]
Patch for landing
Comment 7 Fujii Hironori 2019-10-09 02:42:44 PDT
Comment on attachment 380507 [details]
Patch for landing

Clearing flags on attachment: 380507

Committed r250907: <https://trac.webkit.org/changeset/250907>
Comment 8 Fujii Hironori 2019-10-09 02:42:48 PDT
All reviewed patches have been landed.  Closing bug.
Comment 9 Radar WebKit Bug Importer 2019-10-09 02:43:17 PDT
<rdar://problem/56110031>