blob: df30eee01cf4da4bbeb021f0428be6e9f0e88477 [file] [log] [blame] [view]
# Linux Tests
This repository contains utilities for running integration tests for Linux
guests under Machina.
## Build
First install rust (follow the instructions of the `rustup` tool):
```sh
$ curl https://sh.rustup.rs -sSf | sh
$ source ~/.cargo/env
```
Next we add some new targets for cross-compiling and static linking. Rust
supports statically linking libc by replacing the usual GNU libc with musl (see
[The Rust Book: Advanced Linking](https://doc.rust-lang.org/1.9.0/book/advanced-linking.html)).
```sh
$ rustup target add x86_64-unknown-linux-musl
$ rustup target add aarch64-unknown-linux-musl
```
To compile to ARM targets, you will also need to have an appropriate
cross-compiler in your path. For Debian-based systems, this can be installed by
running the following command:
```sh
$ sudo apt install gcc-aarch64-linux-gnu
```
Lastly, run the build script for your desired architecture. This will invoke
cargo for you as well as create an ext2 image in `out/`.
```sh
$ ./build.sh {arm64|x64}
```