rogerzanoni / icecc-chromium

Scripts and config files for building chromium on an icecc-cluster

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Building chromium on an icecc cluster

Prerequisites

  • A chromium checkout on a Linux computer
  • ccache
  • icecc version >= 1.1rc2.
  • A functioning icecc cluster and a running iceccd on the local computer

Setup

  • Add repo root directory to $PATH
  • source ccache-env
  • Add custom hook to .gclient. See documentation in icecc-create-env.py
  • Run gclient runhooks

Inject the settings in icecc.gni into your build config, either explicitly:

gn gen out \
  --args='use_debug_fission=false clang_use_chrome_plugins=false enable_nacl=false linux_use_bundled_binutils=false cc_wrapper="ccache" enable_swiftshader=false'

Or by importing the absolute path to icecc.gni from args.gn:

mkdir -p out
dir=$(dirname $(which icecc-ninja))
echo "import(\"$dir/icecc.gni\")" > out/args.gn
gn gen out

Usage

Build with icecc-ninja instead of ninja. For instance:

icecc-ninja -j64 -C out/Release blink_tests

Issues

Using clang plugins does not work. They are disabled in icecc.gni which means that e.g. some oilpan errors will go unnoticed.

From time to time there are compile errors which only happen when distributed with icecc. I have seen at least the avx512 issue mentioned in [1]. A workaround for that without messing with local patches is to run ninja instead of icecc-ninja for the problematic target(s).

[1] [https://github.com/ds-hwang/wiki/wiki/Set-up-icecc-with-heterogeneous-env] (https://github.com/ds-hwang/wiki/wiki/Set-up-icecc-with-heterogeneous-env)

License

See LICENSE file

About

Scripts and config files for building chromium on an icecc-cluster

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 56.7%Language:Shell 43.3%