Description
Since depot_tools
used by V8 doesn't host binaries for non-Intel platforms we've had to build it from source on Linux PPC/s390x. #2675 added automation to our Ansible playbook to compile the latest commit of gn
but gn
itself is not versioned and apparently not backwards compatible with itself as can be seen from this recent V8 CI on a Node.js 14 PR:
https://ci.nodejs.org/job/node-test-commit-v8-linux/nodes=rhel7-s390x,v8test=v8test/4091/console
07:45:31 + gn gen -v out.gn/s390x.release '--args=is_component_build=false is_debug=false use_goma=false goma_dir="None" use_custom_libcxx=false v8_target_cpu="s390x" target_cpu="s390x" v8_enable_backtrace=true'
07:45:31 Using source root /data/iojs/build/workspace/node-test-commit-v8-linux/deps/v8
07:45:31 Got dotfile /data/iojs/build/workspace/node-test-commit-v8-linux/deps/v8/.gn
07:45:31 Loading //build/dotfile_settings.gni (referenced from //.gn:5)
07:45:31 Using build dir //out.gn/s390x.release/
07:45:31 Loading //build/config/BUILDCONFIG.gn
07:45:31 ERROR at //build/config/BUILDCONFIG.gn:401:1: Unknown function.
07:45:31 set_sources_assignment_filter(sources_assignment_filter)
07:45:31 ^----------------------------
07:45:31 make: *** [Makefile:276: v8] Error 1
The set_sources_assignment_filter
"feature" was removed from gn
.
Refs: https://groups.google.com/a/chromium.org/g/chromium-dev/c/hyLuCU6g2V4
Refs: https://groups.google.com/a/chromium.org/g/gn-dev/c/oQcYStl_WkI
Refs: https://bugs.chromium.org/p/gn/issues/detail?id=125
I'm going to roll back gn
on the Linux PPC/s390x machines so we can run V8 CI for Node.js 12/14 for tomorrow's security releases.
We'll need to work out what to do about gn
-- maybe either stash several versions and use a selector script or build gn
from source for every V8 CI run based on the commit sha recorded in gn_version
in deps/V8/DEPS
. For release lines the version of gn
used by V8 should be relatively stable but we also build V8 canary where I imagine gn
would be updated more often.