This directory holds a set of scripts for compiling crosvm continuously in go/ab, to be retired when crosvm is integrated in android build.
To get started locally:
First, install packages that are expected to be available for Python build scripts and ARM64 cross builds:
pip install absl-py pip install urlfetch sudo -n apt-install -y pkg-config sudo -n apt-install -y crossbuild-essential-arm64 sudo -n ln -s /usr/share/pkg-config-crosswrapper /usr/bin/aarch64-linux-gnu/pkg-config mkdir aosp cd aosp repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync
(TODO: Remove when merged) Pick https://android-review.googlesource.com/q/topic:%22gfxstream-crosvm-build%22+(status:open%20OR%20status:merged)
cd emu/external/qemu python android/build/python/cmake.py --crosvm
Then the resulting crosvm host package for Cuttlefish is in ./objs/distribution/cf-host-package
, containing both x86_64
and `aarch64 builds:
# Host package for aarch64 objs/distribution/cf-host-package/aarch64-linux-gnu # Host package for x86_64 objs/distribution/cf-host-package/x86_64-linux-gnu
and can be dropped in an existing Cuttlefish build environment by copying contents of objs/distribution/cf-host-package/x86_64-linux-gnu
to out/host/linux-x86/bin/x86_64-linux-gnu
, then it's picked up by launch_cvd
Grab go/ab/emu-master-dev target gfxstream_sdk_tools_linux, then unzip contents of sdk-repo-linux-crosvm-host-package-(x86_64|aarch64)-<buildId>.zip
into binaries directory corresponding to the architecture
Build currently assumes system glibc 2.29, via log2
function from libvirglrenderer.so.1
. Since I don't know the config of the machines on which the aarch64 build run, we may need to downgrade the glibc associated with the aarch64 build (This is in contrast to the x86_64 build which has been tested in presubmit via the full presubmit from AOSP).