| The build system of cg_clif. | |
| USAGE: | |
| ./y.sh prepare [--out-dir DIR] [--download-dir DIR] | |
| ./y.sh build [--sysroot none|clif|llvm] [--out-dir DIR] [--download-dir DIR] [--no-unstable-features] [--frozen] | |
| ./y.sh test [--sysroot none|clif|llvm] [--out-dir DIR] [--download-dir DIR] [--no-unstable-features] [--frozen] [--skip-test TESTNAME] | |
| ./y.sh abi-cafe [--sysroot none|clif|llvm] [--out-dir DIR] [--download-dir DIR] [--no-unstable-features] [--frozen] | |
| ./y.sh bench [--sysroot none|clif|llvm] [--out-dir DIR] [--download-dir DIR] [--no-unstable-features] [--frozen] | |
| ./y.sh check-todo | |
| OPTIONS: | |
| --sysroot none|clif|llvm | |
| Which sysroot libraries to use: | |
| `none` will not include any standard library in the sysroot. | |
| `clif` will build the standard library using Cranelift. | |
| `llvm` will use the pre-compiled standard library of rustc which is compiled with LLVM. | |
| --keep-sysroot | |
| Disable cleaning of the sysroot dir to cause old compiled artifacts to be re-used when | |
| the sysroot source hasn't changed. This is useful when the codegen backend hasn't been | |
| modified. | |
| --out-dir DIR | |
| Specify the directory in which the download, build and dist directories are stored. | |
| By default this is the working directory. | |
| --download-dir DIR | |
| Specify the directory in which the download directory is stored. Overrides --out-dir. | |
| --no-unstable-features | |
| Some features are not yet ready for production usage. This option will disable these | |
| features. This includes the JIT mode and inline assembly support. | |
| --panic-unwind-support | |
| Enable support for unwinding when -Cpanic=unwind is used. This currently regresses build | |
| performance. | |
| --frozen | |
| Require Cargo.lock and cache are up to date | |
| --skip-test TESTNAME | |
| Skip testing the TESTNAME test. The test name format is the same as config.txt. | |
| --use-backend NAME | |
| Use the existing Cranelift (or other) backend of the rustc with which we built. | |
| Warning: This is meant for use in rust's CI only! | |
| REQUIREMENTS: | |
| * Rustup: By default rustup is used to install the right nightly version. If you don't want to | |
| use rustup, you can manually install the nightly version indicated by rust-toolchain.toml and | |
| point the CARGO, RUSTC and RUSTDOC env vars to the right executables. | |
| * Git: Git is used for downloading test repos and applying patches. | |
| * [Hyperfine](https://github.com/sharkdp/hyperfine/): Used for benchmarking with `./y.sh bench`. |