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 -~----------~----~----~----~------~----~------~--~---
