Does anyone have a working procedure for building v8 under mingw?

288 views
Skip to first unread message

Zac Hansen

unread,
Apr 16, 2016, 7:39:16 PM4/16/16
to v8-users
It seems the instructions here: https://github.com/v8/v8/wiki/Building-with-Gyp  have been broken for 4+ years when looking for solutions to the problems I"m having.

I done a clean checkout with DEPOT_TOOLS_WIN_TOOLCHAIN=0 set, put python in my path, but when I type make ia32.releaseI get:

$ make ia32.release -j4
make
[1]: Entering directory `/c/Users/xaxxon/deleteme3/v8/out'
make[1]: *** No rule to make target `
../build\isolate.gypi', needed by `Makefile.ia32.release'.  Stop.
make
[1]: Leaving directory `/c/Users/xaxxon/deleteme3/v8/out'
make: *** [ia32.release] Error 2



or if I do x64.release:


$ make x64
.release -j4
make
[1]: Entering directory `/c/Users/xaxxon/deleteme3/v8/out'
third_party\icu\icudata.target.x64.release.mk:8: warning: overriding commands for target `
/c/Users/xaxxon/deleteme3/v8/out/x64.release\icudt.dll'
third_party\icu\icudata.host.x64.release.mk:8: warning: ignoring old commands for target `/c/Users/xaxxon/deleteme3/v8/out/x64.release\icudt.dll'

make
[1]: *** No rule to make target `../build\isolate.gypi', needed by `Makefile.x64.release'.  Stop.
make[1]: Leaving directory `/c/Users/xaxxon/deleteme3/v8/out'

make
: *** [x64.release] Error 2





and if I don't do the  DEPOT_TOOLS_WIN_TOOLCHAIN=0, I get landmines.py errors.   


C
:\Users\xaxxon\deleteme4>fetch v8
Running: 'c:\Users\xaxxon\depot_tools\python276_bin\python.exe' 'c:\Users\xaxxon\depot_tools\gclient.py' root
Running: 'c:\Users\xaxxon\depot_tools\python276_bin\python.exe' 'c:\Users\xaxxon\depot_tools\gclient.py' config --spec 'solutions = [
  {
    "managed": False,
    "name": "v8",
    "url": "https://chromium.googlesource.com/v8/v8.git",
    "custom_deps": {},
    "deps_file": "DEPS",
    "safesync_url": "",
  },
]
'

Running: 'c:\Users\xaxxon\depot_tools\python276_bin\python.exe' 'c:\Users\xaxxon\depot_tools\gclient.py' sync --with_branch_heads
Error: Command 'c:\\Users\\xaxxon\\depot_tools\\python276_bin\\python.exe v8/build/landmines.py' returned non-zero exit status 1 in C:\Users\xaxxon\deleteme4
Traceback (most recent call last):
 
File "c:\Users\xaxxon\depot_tools\\fetch.py", line 346, in <module>
    sys
.exit(main())
 
File "c:\Users\xaxxon\depot_tools\\fetch.py", line 341, in main
   
return run(options, spec, root)
 
File "c:\Users\xaxxon\depot_tools\\fetch.py", line 335, in run
   
return checkout.init()
 
File "c:\Users\xaxxon\depot_tools\\fetch.py", line 142, in init
   
self.run_gclient(*sync_cmd)
 
File "c:\Users\xaxxon\depot_tools\\fetch.py", line 76, in run_gclient
   
return self.run(cmd_prefix + cmd, **kwargs)
 
File "c:\Users\xaxxon\depot_tools\\fetch.py", line 66, in run
   
return subprocess.check_output(cmd, **kwargs)
 
File "c:\Users\xaxxon\depot_tools\python276_bin\lib\subprocess.py", line 573, in check_output
   
raise CalledProcessError(retcode, cmd, output=output)
subprocess
.CalledProcessError: Command '('c:\\Users\\xaxxon\\depot_tools\\python276_bin\\python.exe', 'c:\\Users\\xaxxon\\depot_tools\\gclient.py', 'sync', '--with_branch_heads')' returned non-zero exit status 2

someone previously suggested running gclient sync after running into this error:

C:\Users\xaxxon\deleteme4\v8>gclient sync
.gclient file in parent directory C:\Users\xaxxon\deleteme4 might not be the file you want to use
Syncing projects: 100% (17/17), done.


________ running
'c:\Users\xaxxon\depot_tools\python276_bin\python.exe v8/build/landmines.py' in 'C:\Users\xaxxon\deleteme4'






Please follow the instructions at https://www.chromium.org/developers/how-tos/build-instructions-windows




Traceback (most recent call last):
 
File "v8/build/landmines.py", line 245, in <module>
    sys
.exit(main())
 
File "v8/build/landmines.py", line 232, in main
    gyp_environment
.set_environment()
 
File "C:\Users\xaxxon\deleteme4\v8\build\gyp_environment.py", line 54, in set_environment
    vs_toolchain
.SetEnvironmentAndGetRuntimeDllDirs()
 
File "C:\Users\xaxxon\deleteme4\v8\build\vs_toolchain.py", line 44, in SetEnvironmentAndGetRuntimeDllDirs
   
Update()
 
File "C:\Users\xaxxon\deleteme4\v8\build\vs_toolchain.py", line 331, in Update
    subprocess
.check_call(get_toolchain_args)
 
File "c:\Users\xaxxon\depot_tools\python276_bin\lib\subprocess.py", line 540, in check_call
   
raise CalledProcessError(retcode, cmd)
subprocess
.CalledProcessError: Command '['c:\\Users\\xaxxon\\depot_tools\\python276_bin\\python.exe', 'c:\\Users\\xaxxon\\depot_tools\\win_toolchain\\get_toolchain_if_necessary.py', '--output-json', 'C:\\Users\\xaxxon\\deleteme4\\v8\\build\\win_toolchain.json', '03a4e939cd325d6bc5216af41b92d02dda1366a6']' returned non-zero exit status 1
Error: Command 'c:\\Users\\xaxxon\\depot_tools\\python276_bin\\python.exe v8/build/landmines.py' returned non-zero exit status 1 in C:\Users\xaxxon\deleteme4



if I try the build anyhow:


$ make ia32.release
PYTHONPATH
="/c/Users/xaxxon/deleteme4/v8/tools/generate_shim_headers:/c/Users/xaxxon/deleteme4/v8/build::/c/Users/xaxxon/deleteme4/v8/build/gyp/pylib:" \
        GYP_GENERATORS
=make \
        build
/gyp/gyp --generator-output="out" build/all.gyp \
                     
-Ibuild/standalone.gypi --depth=. \
                     
-Dv8_target_arch=ia32 \
                       
\
                       
\
                     
-S.ia32.release  -Dv8_enable_backtrace=1 -Darm_fpu=default -Darm_float_abi=default
make
[1]: Entering directory `/c/Users/xaxxon/deleteme4/v8/out'
make[1]: *** No rule to make target `
../build\isolate.gypi', needed by `Makefile.ia32.release'.  Stop.
make
[1]: Leaving directory `/c/Users/xaxxon/deleteme4/v8/out'
make: *** [ia32.release] Error 2



Anyone have a working procedure?   Or, failing that, does anyone know if v8 will build under the latest Visual Studio?   

Thank you.

--Zac

Jochen Eisinger

unread,
Apr 17, 2016, 1:20:09 AM4/17/16
to v8-users
I use the mingw that comes with depot_tools (specifically, started via git_bash.bat in depot_tools/git-1.9.5 (or whatever the exact directory name is).

I use, however, visual studio 2015 to build (I just open the build/all.sln using VS). I don't think the make generator works on windows. You might have some luck using ninja (GYP_GENERATORS=ninja).

Can you file a bug about landmines not working with the depot_tool toolchain?

best
-jochen

--
--
v8-users mailing list
v8-u...@googlegroups.com
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups "v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Zac Hansen

unread,
Apr 17, 2016, 3:17:59 AM4/17/16
to v8-users
Thank you for your help.  I managed to get it compiling in visual studio 2015.2.


I hope that is sufficient information.

--Zac

Jakob Kummerow

unread,
Apr 18, 2016, 8:23:34 AM4/18/16
to v8-users

Zac Hansen

unread,
Apr 18, 2016, 1:58:50 PM4/18/16
to v8-u...@googlegroups.com
Yeah, it doesn't work for me.   Or maybe there's some step I'm missing?

$ tools/mingw-generate-makefiles.sh
find: 'out': No such file or directory
make: *** No rule to make target `out/Makefile.ia32'.  Stop.
find: 'out': No such file or directory


xaxxon@DESKTOP-QK88IBI MINGW64 ~/v8 ((1ff65e9...))
$ mkdir out

xaxxon@DESKTOP-QK88IBI MINGW64 ~/v8 ((1ff65e9...))
$ tools/mingw-generate-makefiles.sh
make: *** No rule to make target `out/Makefile.ia32'.  Stop.


You received this message because you are subscribed to a topic in the Google Groups "v8-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/v8-users/eC_0XaOOBFM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to v8-users+u...@googlegroups.com.

Jakob Kummerow

unread,
Apr 18, 2016, 4:39:26 PM4/18/16
to v8-users
Hm. That appears to have bitrotted then. Which kind of indicates how much usage the MinGW build is getting. It's community maintained, so feel free to fix it and contribute a patch. As a first hint: instead of 
make out/Makefile.ia32
there should probably be
make out/Makefile.ia32.release
make out/Makefile.ia32.debug
in tools/mingw-generate-makefiles.sh around line 79.

Zac Hansen

unread,
Apr 18, 2016, 4:40:01 PM4/18/16
to v8-u...@googlegroups.com
:-D

Zac Hansen

unread,
Apr 18, 2016, 4:54:18 PM4/18/16
to v8-u...@googlegroups.com
I have python 2.7.11 downloaded from python.org in my path and am running out of the depot_tools\git-2.7.4-64_bin\bin\bash.exe with that change you suggested, now I get this error repeated many (many) times.   Sorry I'm kind of useless in figuring out what's going on.. I don't know much about python or the build system v8 is using... 

--Zac


$ ./tools/mingw-generate-makefiles.sh
PYTHONPATH="/c/Users/xaxxon/v8/tools/generate_shim_headers:/c/Users/xaxxon/v8/build::/c/Users/xaxxon/v8/build/gyp/pylib:" \
        GYP_GENERATORS=make \
        build/gyp/gyp --generator-output="out" build/all.gyp \
                      -Ibuild/standalone.gypi --depth=. \
                      -Dv8_target_arch=ia32 \
                       \
                       \
                      -S.ia32.release  -Dv8_enable_backtrace=1 -Darm_fpu=default -Darm_float_abi=default
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\Python27\lib\multiprocessing\forking.py", line 380, in main
    prepare(preparation_data)
  File "c:\Python27\lib\multiprocessing\forking.py", line 503, in prepare
    file, path_name, etc = imp.find_module(main_name, dirs)
ImportError: No module named gyp



Here's my path info:
$ echo $PATH
/mingw64/bin:/usr/bin:/c/Users/xaxxon/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/WindowsPowerShell/v1.0:/c/Users/xaxxon/.dnx/bin:/c/Program Files/Microsoft DNX/Dnvm:/c/Program Files (x86)/Windows Kits/8.1/Windows Performance Toolkit:/c/Program Files/Microsoft SQL Server/120/Tools/Binn:/c/Program Files/Microsoft SQL Server/110/Tools/Binn:/c/Program Files (x86)/Microsoft SDKs/TypeScript/1.0:/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/WindowsPowerShell/v1.0:/c/Program Files/Git/cmd:/c/Program Files/Git/mingw64/bin:/c/Program Files/Git/usr/bin:/c/Program Files/TortoiseGit/bin:/c/Program Files (x86)/Livestreamer:%USERPROFILE%/.dnx/bin:/c/Program Files/Microsoft DNX/Dnvm:/c/Program Files/Microsoft SQL Server/130/Tools/Binn:/c/mingw/bin:/c/mingw/msys/1.0/bin:/c/Users/xaxxon/AppData/Local/atom/bin:/c/Program Files (x86)/FAHClient:/c/users/xaxxon/depot_tools:/c/Python27:/c/Program Files (x86)/CMake/bin

xaxxon@DESKTOP-QK88IBI MINGW64 ~/v8 ((1ff65e9...))
$ python
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>

xaxxon@DESKTOP-QK88IBI MINGW64 ~/v8 ((1ff65e9...))
$ which python
/c/Python27/python
Reply all
Reply to author
Forward
0 new messages