[webkit-help] Linker issues with jsc

Justin Thomas justin at sweaky.com
Fri Oct 7 19:00:39 PDT 2011


Hi All,

I have been working on getting JavaScriptCore building and running but 
trying to use a different setup. My goal, is to get it building on 
Windows, either through visual studio or cygwin (or both) using 
glib/gobject libs instead of libicuxx libs and without core foundation.

Currently, I have been able to get it pretty far, I've branched my own 
projects and vsprops, removed the libicu references and added in the 
glib references/includes into the vsprops, defined ENABLE_GLIB_SUPPORT, 
removed the icu headers/code files from the vs project file and added in 
the glib/gobject ones. I've defined in unicodeglib.h UChar and UChar32 
as guint16 and guint32 (not sure what is was before, maybe I just 
circled back around). I have also defined JSChar as unsigned short (even 
wchar_t), after fixing a few compile errors I've managed to get it to 
begin linking, but am stuck on some (probably quite trivial) problems, 
build output:

3>Linking...
3>JSByteArray.obj : warning LNK4197: export 
'?s_info at JSByteArray@JSC@@2UClassInfo at 2@B' specified multiple times; 
using first specification
3>   Creating library 
G:\webkit-latest\WebKitBuild\Debug\lib\JavaScriptCore.lib and object 
G:\webkit-latest\WebKitBuild\Debug\lib\JavaScriptCore.exp
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol 
"public: __thiscall JSC::UString::UString(wchar_t const *)" 
(??0UString at JSC@@QAE at PB_W@Z)
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol 
"public: __thiscall JSC::UString::UString(wchar_t const *,unsigned int)" 
(??0UString at JSC@@QAE at PB_WI@Z)
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol 
"public: void __thiscall WTF::StringBuilder::append(wchar_t const 
*,unsigned int)" (?append at StringBuilder@WTF@@QAEXPB_WI at Z)
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol 
"public: enum WTF::Collator::Result __thiscall 
WTF::Collator::collate(wchar_t const *,unsigned int,wchar_t const 
*,unsigned int)const " (?collate at Collator@WTF@@QBE?AW4Result at 12@PB_WI0I at Z)
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol "enum 
WTF::Unicode::ConversionResult __cdecl 
WTF::Unicode::convertUTF16ToUTF8(wchar_t const * *,wchar_t const *,char 
* *,char *,bool)" 
(?convertUTF16ToUTF8 at Unicode@WTF@@YA?AW4ConversionResult at 12@PAPB_WPB_WPAPADPAD_N at Z)
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol "enum 
WTF::Unicode::ConversionResult __cdecl 
WTF::Unicode::convertUTF8ToUTF16(char const * *,char const *,wchar_t * 
*,wchar_t *,bool)" 
(?convertUTF8ToUTF16 at Unicode@WTF@@YA?AW4ConversionResult at 12@PAPBDPBDPAPA_WPA_W_N at Z)
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol "bool 
__cdecl WTF::Unicode::equalUTF16WithUTF8(wchar_t const *,wchar_t const 
*,char const *,char const *)" 
(?equalUTF16WithUTF8 at Unicode@WTF@@YA_NPB_W0PBD1 at Z)
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol 
"public: unsigned int __thiscall 
WTF::DecimalNumber::toStringDecimal(wchar_t *,unsigned int)const " 
(?toStringDecimal at DecimalNumber@WTF@@QBEIPA_WI at Z)
3>JavaScriptCore.exp : error LNK2001: unresolved external symbol 
"public: unsigned int __thiscall 
WTF::DecimalNumber::toStringExponential(wchar_t *,unsigned int)const " 
(?toStringExponential at DecimalNumber@WTF@@QBEIPA_WI at Z)
3>G:\webkit-latest\WebKitBuild\Debug\bin\JavaScriptCore.dll : fatal 
error LNK1120: 9 unresolved externals

Where wchar_t is specified, in the code those are UChar's, which are not 
defined as wchar_t (I have it defined as unsigned shorts, even maybe vsc 
is just assuming since it is ushort that it's the same as wchar_t?), 
I've been at this for a couple days now trying to figure out why it's 
looking for these signatures. I've also tried configuring wchar as 
built-in type and not with no difference.

As a side note, which I don't think is related but might be, while 
building for vs it seems nmake would hang while generating the 
KeywordLookup and RexExJit tables, so I ended up just running those 
myself through cygwin (just as DerivedSources.make does) and copy them 
over during each clean, a bit wonky but again right now I'm just trying 
to see if I can get a viable build going using just glib.

Any help, pointers, etc.. would be appreciated.

Thanks,
  -JT
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-help/attachments/20111007/83fa1996/attachment.html>


More information about the webkit-help mailing list