Thanks to all who helped.  Now I do not need to use MSVC at all :-)

On Wed, Apr 22, 2009 at 10:09 PM, Alex Iskander <[email protected]> wrote:

>  Glad you got it working!
>
> These libraries are required because, although you are building with GCC,
> you are still building on Windows. On Windows, v8 requires these libraries.
> Alex
>
>  On Apr 22, 2009, at 7:03 AM, Qu0ll wrote:
>
>  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
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>   Alex Iskander, TPSi
>
>
>
>
>
> >
>

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

Reply via email to