0

我正在尝试按照 https://v8.dev/docs/build 中的文档为AOSP 棒棒糖版本中存在的 V8 运行单元测试: external/chromium_org/v8。但是构建本身不断失败。

后续步骤:

  1. 导出 depot_tools 路径
  2. gclient同步
  3. 使用 ./build/install-build-deps.sh 安装依赖项(默认情况下,源代码中不存在此脚本,因此必须从更高版本手动复制)
  4. 通用 x64.release

我已经安装了所有依赖项并遵循了上述文档中的所有步骤,但是当我这样做时:

gm x64.release

构建失败,输出如下:

# echo > out/x64.release/args.gn << EOF
is_component_build = false
is_debug = false
target_cpu = "x64"
use_goma = false
v8_enable_backtrace = true
v8_enable_disassembler = true
v8_enable_object_print = true
v8_enable_verify_heap = true
EOF
# gn gen out/x64.release
ERROR at //build/config/BUILDCONFIG.gn:71:7: Undefined identifier
  if (os == "chromeos") {
      ^-

我也尝试按照手动工作流程使用 gn 构建它,但我最终遇到了同样的错误。我还尝试在 gn args 列表中将os变量设置为linux,但我也得到了未知标识符错误。

我看到 AOSP 项目中使用的 v8 在文件方面与具有相同版本的主要源代码有很大不同。默认情况下,辅助脚本 tools/dev/gm.py 也不存在,因此我使用的是更高版本的脚本。如果有人能建议我是否应该遵循任何不同的步骤集或我可以参考的任何其他资源来构建 AOSP 项目中存在的 V8,那就太好了

版本:V8 3.29.88.17
操作系统:Ubuntu 18.04.5 LTS
架构:x86_64

4

1 回答 1

1

3.29严重老;我对它不会使用当前工具构建并不感到惊讶。经验法则:在构建旧软件时,请使用当时用于构建它的工具。

在手头的情况下:尝试make x64.release.check -jN使用 N 作为您拥有的 CPU 内核数。

我看到 AOSP 项目中使用的 v8 在文件方面与具有相同版本的主要源代码有很大不同。

“lollipop-release”分支包含 V8 3.27.34.15,而“lollipop-mr1-release”包含您引用的 V8 3.29.88.17。这能解释差异吗?

于 2021-02-24T18:32:30.577 回答