Success!  But I am not entirely sure why.

I got the thing to link by including the following libraries from
MinGW\lib in this special order:

ws2_32
wsock32
winmm

And it actually runs and works!!!

Now, can anyone explain why building with GCC/MinGW requires all these
additional libraries?

Thanks,

-Qu0ll

On Wed, Apr 22, 2009 at 9:45 PM, Qu0ll <[email protected]> wrote:

> OK, getting very close now.
>
> Most of those errors were because I was still passing the compiler command
> option to use a shared V8 library even though I built a static one.
> Removing that now leaves the following unresolved references, all from the
> problematic platform-win32.cc:
>
>
> g++ -LD:\MSYS\1.0\home\Qu0ll\V8\trunk -LD:\MinGW\lib -ov8-hello-world.exe
> Source\helloWorld.o -lv8
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal4Time16SetToCurrentTimeEv+0x2d):
> undefined reference to `_timegett...@0'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal4Time16SetToCurrentTimeEv+0x78):
> undefined reference to `_timegett...@0'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS17TimeCurrentMillisEv+0x39):
> undefined reference to `_timegett...@0'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS17TimeCurrentMillisEv+0x8c):
> undefined reference to `_timegett...@0'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS5SetupEv+0x39):
> undefined reference to `_timegett...@0'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS5SetupEv+0x8c):
> more undefined references to `_timegett...@0' follow
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket4BindEi+0x52):
> undefined reference to `_ht...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket4BindEi+0x66):
> undefined reference to `_ht...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket4BindEi+0x85):
> undefined reference to `_b...@12'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZNK2v88internal11Win32Socket6ListenEi+0x2f):
> undefined reference to `_lis...@8'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZNK2v88internal11Win32Socket6AcceptEv+0x29):
> undefined reference to `_acc...@12'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket7ConnectEPKcS3_+0x7f):
> undefined reference to `_getaddri...@16'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket7ConnectEPKcS3_+0xa5):
> undefined reference to `_conn...@12'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket7ConnectEPKcS3_+0xb6):
> undefined reference to `_freeaddri...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket8ShutdownEv+0x40):
> undefined reference to `_shutd...@8'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket8ShutdownEv+0x50):
> undefined reference to `_closesoc...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32SocketD0Ev[v8::internal::Win32Socket::~Win32Socket()]+0x40):
> undefined reference to `_shutd...@8'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32SocketD0Ev[v8::internal::Win32Socket::~Win32Socket()]+0x4e):
> undefined reference to `_closesoc...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32SocketD1Ev[v8::internal::Win32Socket::~Win32Socket()]+0x36):
> undefined reference to `_shutd...@8'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32SocketD1Ev[v8::internal::Win32Socket::~Win32Socket()]+0x44):
> undefined reference to `_closesoc...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZNK2v88internal11Win32Socket4SendEPKci+0x24):
> undefined reference to `_s...@16'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZNK2v88internal11Win32Socket7ReceiveEPci+0x24):
> undefined reference to `_r...@16'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket15SetReuseAddressEb+0x3f):
> undefined reference to `_setsock...@20'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket9LastErrorEv+0x1):
> undefined reference to `_wsagetlaster...@0'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket5SetupEv+0x17):
> undefined reference to `_wsastar...@8'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket5SetupEv+0x34):
> undefined reference to `_wsagetlaster...@0'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket4HToNEt+0xc):
> undefined reference to `_ht...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket4NToHEt+0xc):
> undefined reference to `_nt...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket4HToNEj+0xb):
> undefined reference to `_ht...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket4NToHEj+0xb):
> undefined reference to `_nt...@4'
>
> D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS12CreateSocketEv+0x32):
> undefined reference to `_soc...@12'
> Again, it looks like I am missing a library or perhaps a link command
> option.
> Any ideas anyone?
>
> Thanks,
>
> -Qu0ll
>
>   On Wed, Apr 22, 2009 at 9:07 PM, Qu0ll <[email protected]> wrote:
>
>> Ah, making a lot of progress now.
>>
>> I managed to get around that compile issue by removing a check in
>> ws2tcpip.h for the version of WINNT as it didn't include the required
>> definitions and I think this is a Vista issue.  Anyway, everything builds
>> now but I get the following bizarre link errors:
>>
>>
>> g++ -LD:\MSYS\1.0\home\Qu0ll\V8\trunk -ov8-hello-world.exe
>> Source\helloWorld.o -lv8
>>
>> Source\helloWorld.o: In function `_ZNK2v86HandleINS_7ContextEEdeEv':
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v811HandleScopeC1Ev'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v87Context3NewEPNS_22ExtensionConfigurationENS_6HandleINS_14ObjectTemplateEEENS3_INS_5ValueEEE'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v86String3NewEPKci'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v86Script7CompileENS_6HandleINS_6StringEEEPNS_12ScriptOriginEPNS_10ScriptDataE'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v86Script3RunEv'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v86String10AsciiValueC1ENS_6HandleINS_5ValueEEE'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v86String10AsciiValueD1Ev'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v811HandleScopeD1Ev'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v86String10AsciiValueD1Ev'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v811HandleScopeD1Ev'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v87Context4ExitEv'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v87Context5EnterEv'
>>
>> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to
>> `__imp___ZN2v82V813DisposeGlobalEPPv'
>> It looks like it needs another library or perhaps some link command
>> option.
>>
>> Any ideas?
>>
>> 2009/4/22 Søren Gjesse <[email protected]>
>>
>>> It looks as if the include file ws2tcpip.h is not read correctly when
>>> compiling platform-win32.cc - ws2tcpip.h declares getaddrinfo and
>>> freeaddrinfo.
>>> Regards,
>>> Søren
>>>
>>>
>>> On Wed, Apr 22, 2009 at 11:26, Qu0ll <[email protected]> wrote:
>>>
>>>> 2009/4/22 Søren Gjesse <[email protected]>
>>>>
>>>>> Copying my response from another thread.
>>>>> The reason for this behavior is most likely caused by both Microsoft
>>>>> Visual Studio and MinGW being installed. The current SCons setup for V8
>>>>> depends on the SCons autodetecting the toolchain, where MSVC is preferred
>>>>> over MinGW. You could try patching SConstruct and src/SConscript files
>>>>> adding tools = ['mingw'] to Environment() calls (Environment(tools =
>>>>> ['mingw'])).
>>>>> On a Windows installation with only MinGW installed V8 SCons build does
>>>>> not cause problems.
>>>>>
>>>>>
>>>>
>>>>  OK thanks, much progress has been made now.   I have tried that but
>>>> this is the result when I run scons after successfully compiling most of 
>>>> the
>>>> modules:
>>>>
>>>> g++ -o obj\release\platform-win32.o -c -Wall -Werror -W
>>>> -Wno-unused-parameter -pedantic -Wno-long-long -O3 -fomit-frame-pointer
>>>> -fdata-sections -ffunction-sections -DWIN32 -fno-rtti -fno-exceptions
>>>> -DWIN32 -Wall -Werror -W -Wno-unused-parameter -pedantic -Wno-long-long -O3
>>>> -fomit-frame-pointer -fdata-sections -ffunction-sections -DWIN32
>>>> -DENABLE_LOGGING_AND_PROFILING src\platform-win32.cc
>>>> src\platform-win32.cc: In member function `virtual bool
>>>> v8::internal::Win32Socket::Connect(const char*, const char*)':
>>>> src\platform-win32.cc:1653: error: `getaddrinfo' was not declared in
>>>> this scope
>>>> src\platform-win32.cc:1660: error: `freeaddrinfo' was not declared in
>>>> this scope
>>>> src\platform-win32.cc:1653: warning: unused variable 'getaddrinfo'
>>>> src\platform-win32.cc:1660: warning: unused variable 'freeaddrinfo'
>>>> scons: *** [obj\release\platform-win32.o] Error 1
>>>> scons: building terminated because of errors.
>>>>
>>>> Any ideas how to resolve this one?
>>>>
>>>> -Qu0ll
>>>>
>>>>
>>>>
>>>
>>> >>>
>>>
>>
>

--~--~---------~--~----~------------~-------~--~----~
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to