Monday, August 3, 2015

Building V8 on Fedora release 22

Building V8 on Fedora release 22


Pre-requisites

1. git should be available on your system OR install git via dnf install git (yum install git in older versions of fedora)
2. gcc & developmental tools
3. Python


# dnf install git

Last metadata expiration check performed 0:00:00 ago on Mon Aug  3 13:07:23 2015.
Package git-2.4.3-3.fc22.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!


Steps/procedure 


1) Depot tools can be installed as a non-root user and $PATH to include the location.

Install depot-tools as mentioned in link
http://dev.chromium.org/developers/how-tos/install-depot-tools

  1. Fetch depot_tools:
    $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  2. Add depot_tools to your PATH:
    $ export PATH=`pwd`/depot_tools:"$PATH"
[arun@ ~]$ which fetch
~/workspace/gitrepo/chromedepot-tools/depot_tools/fetch

[arun@ v8]$ which gclient
~/workspace/gitrepo/chromedepot-tools/depot_tools/gclient

create a directory eg., v8engine and then execute the command: fetch v8 
2) fetch v8 
Note: this shall get v8 source code under the v8engine directory.

3) gclient sync

[arun@ v8]$ gclient sync

________ running '/usr/bin/python v8/build/landmines.py' in '/home/arun/workspace/gitrepo/v8engine'

________ running 'download_from_google_storage --no_resume --platform=win32 --no_auth --bucket chromium-clang-format -s v8/buildtools/win/clang-format.exe.sha1' in '/home/arun/workspace/gitrepo/v8engine'

________ running 'download_from_google_storage --no_resume --platform=darwin --no_auth --bucket chromium-clang-format -s v8/buildtools/mac/clang-format.sha1' in '/home/arun/workspace/gitrepo/v8engine'

________ running 'download_from_google_storage --no_resume --platform=linux* --no_auth --bucket chromium-clang-format -s v8/buildtools/linux64/clang-format.sha1' in '/home/arun/workspace/gitrepo/v8engine'

________ running '/usr/bin/python v8/third_party/binutils/download.py' in '/home/arun/workspace/gitrepo/v8engine'

________ running '/usr/bin/python v8/tools/clang/scripts/update.py --if-needed' in '/home/arun/workspace/gitrepo/v8engine'
Clang already at 242792-1

________ running '/usr/bin/python v8/build/gyp_v8' in '/home/arun/workspace/gitrepo/v8engine'
Updating projects from gyp files...
[arun@ v8]$ 
[arun@ v8]$ 
[arun@ v8]$ which gyp
/usr/bin/which: no gyp in (/home/arun/workspace/gcloud/google-cloud-sdk/bin:/home/arun/.nvm/versions/node/v0.12.2/bin:/home/arun/workspace/gcloud/google-cloud-sdk/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/arun/workspace/nodews/node_modules/.bin:/home/arun/workspace/gitrepo/chromedepot-tools/depot_tools:/home/arun/bin:/home/arun/.local/bin:/home/arun/bin:/home/arun/nodews/node_modules/.bin/:/home/arun/workspace/nodews/node_modules/.bin:/home/arun/workspace/gitrepo/chromedepot-tools/depot_tools:/home/arun/bin)
[arun@ v8]$ 
[arun@ v8]$ 
[arun@ v8]$ gcc 
gcc: fatal error: no input files
compilation terminated.
[arun@ v8]$ 
[arun@ v8]$ 
[arun@ v8]$ gcc --version
gcc (GCC) 5.1.1 20150612 (Red Hat 5.1.1-3)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[arun@ v8]$ make native
PYTHONPATH="/home/arun/workspace/gitrepo/v8engine/v8/tools/generate_shim_headers:/home/arun/workspace/gitrepo/v8engine/v8/build::/home/arun/workspace/gitrepo/v8engine/v8/build/gyp/pylib:" \
GYP_GENERATORS=make \
build/gyp/gyp --generator-output="out" build/all.gyp \
              -Ibuild/standalone.gypi --depth=. -S.native  -Dv8_enable_backtrace=1 -Darm_fpu=default -Darm_float_abi=default
make[1]: Entering directory '/home/arun/workspace/gitrepo/v8engine/v8/out'
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/accessors.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/allocation.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/allocation-site-scopes.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/allocation-tracker.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/api.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/api-natives.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/arguments.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/assembler.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/assert-scope.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/ast-value-factory.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/ast-literal-reindexer.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/ast-numbering.o
  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/v8_base/src/ast.o

...
...
...

  CXX(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/parser-shell/src/startup-data-util.o
  LINK(target) /home/arun/workspace/gitrepo/v8engine/v8/out/native/parser-shell
  TOUCH /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.target/build/All.stamp
  TOUCH /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/testing/gtest_prod.stamp
  CXX(host) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/gtest/testing/gtest/src/gtest-death-test.o
  CXX(host) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/gtest/testing/gtest/src/gtest-filepath.o
  CXX(host) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/gtest/testing/gtest/src/gtest-port.o
  CXX(host) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/gtest/testing/gtest/src/gtest-printers.o
  CXX(host) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/gtest/testing/gtest/src/gtest-test-part.o
  CXX(host) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/gtest/testing/gtest/src/gtest-typed-test.o
  CXX(host) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/gtest/testing/gtest/src/gtest.o
  AR(host) /home/arun/workspace/gitrepo/v8engine/v8/out/native/obj.host/testing/libgtest.a
rm tools_gyp_v8_gyp_v8_external_snapshot_target_run_mksnapshot__external_.intermediate tools_gyp_v8_gyp_js2c_target_js2c_experimental.intermediate tools_gyp_v8_gyp_js2c_target_js2c_extras.intermediate tools_gyp_v8_gyp_js2c_target_js2c.intermediate tools_gyp_v8_gyp_js2c_target_js2c_code_stubs.intermediate
make[1]: Leaving directory '/home/arun/workspace/gitrepo/v8engine/v8/out'
[arun@ v8]$ 

It took nearly an hour on my laptop for "make native" to complete. 


Useful links:
https://developers.google.com/v8/build

http://code.google.com/p/v8-wiki/wiki/UsingGit
http://code.google.com/p/v8-wiki/wiki/BuildingWithGYP

No comments:

Post a Comment