微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Ubuntu 18.04.5 LTS 上为旧版本从 AOSP 构建和测试 V8

如何解决在 Ubuntu 18.04.5 LTS 上为旧版本从 AOSP 构建和测试 V8

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

步骤如下:

  1. 导出 depot_tools 路径
  2. gclient 同步
  3. 使用 ./build/install-build-deps.sh 安装依赖项(认情况下,源代码中不存在此脚本,因此必须从更高版本手动复制)
  4. gm 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 在文件方面与主要源代码有很大不同,具有相同的 version认情况下,辅助脚本 tools/dev/gm.py 也不存在,因此我使用的是更高版本的一个。如果有人能建议我是否应该遵循任何不同的步骤集或我可以参考的任何其他资源来构建 AOSP 项目中存在的 V8,那就太好了

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

解决方法

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。这能解释差异吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。