NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4317 most downloaded on crates.io
Zero setup cross compilation and cross testing
Last release 4 years ago
no release in 18 months
Ships unpredictably
gaps range from 2 weeks to 2.0 years
Nearly every release is documented
notes for 22 of 22 stable releases
2 versions withdrawn
withdrawn after publishing
10 years old
25 releases · first in 2016
What's Changed Fixed #962 - fix SELinux labels to allow use in multiple containers and/or the host filesystem. #1166 - freebsd: include memstat in bui
#962 - fix SELinux labels to allow use in multiple containers and/or the host filesystem.
#1166 - freebsd: include memstat in build image to fix build with libc 0.2.138 and up.
#1183 - resolve issue when using pre-build in Cargo.toml
Full Changelog: v0.2.4...v0.2.5
[v0.2.4] - 2022-07-10 Fixed #930 - fix any parsing of 1-character subcommands #929 - Fixed issue where --verbose would not output data when it should
One column per quarter.
Fix parsing of config build.env.passthrough values. by @Alexhuszagh in #867
CARGO_TERM_VERBOSE, CARGO_TERM_QUIET, and CARGO_TERM_COLOR environment variables for cross terminal output.x86_64-unknown-illumos target.pre-build can now take a string pointing to a script file to run.qemu-runner for musl images, allowing use of native or emulated runners.i586-unknown-linux-gnu, i686-unknown-linux-musl, and i586-unknown-linux-gnu, so they can run on an x86 CPU, rather than an x86_64 CPU.CROSS_REMOTE_SKIP_BUILD_ARTIFACTS.CROSS_CONTAINER_USER_NAMESPACE environment variable.CROSS_ROOTLESS_CONTAINER_ENGINE environment variable.ghcr.io/cross-rs/cross containing cross.x86_64-unknown-linux-musl.cargo metadata works by using the same channel.target.$(...) config options override build ones when parsing strings and vecs.CARGO environment variable.build.env.passthrough config values.build.env.passthrough values. by @Alexhuszagh in #867CARGO environment variable. by @Alexhuszagh in #868Full Changelog: v0.2.2...v0.2.3
What's next? We've got some breaking changes for v0.3.0, including updating the base Ubuntu versions for our images from 16.04 to 20.04. Although usin…
After almost two years, cross finally has a new version available!
Major features of this release are:
CROSS_REMOTE. See the wikiWhat's next? We've got some breaking changes for v0.3.0, including updating the base Ubuntu versions for our images from 16.04 to 20.04. Although using older glibc versions is great for backwards compatibility, many of us are working on newer codebases where binary compatibility with old glibc versions isn't required, so you can install a more modern toolset from the system package manager.
CROSS_CUSTOM_TOOLCHAIN to disable automatic installation of components for use with tools like cargo-bisect-rustcCROSS_CONTAINER_IN_CONTAINER environment variable to replace CROSS_DOCKER_IN_DOCKER.CROSS_REMOTE environment variable. also adds in utility commands to create and remove persistent data volumes.build-std config option, which builds the rust standard library from source if enabled.target.{target}.dockerfile[.file], target.{target}.dockerfile.context and target.{target}.dockerfile.build-args to invoke docker/podman build before using an image.target.{target}.pre-build config for running commands before building the image.CROSS_CONTAINER_OPTS environment variable to replace DOCKER_OPTS.cross-util and xtask commands.Cargo.toml as configuration sourcethumbv7neon-* targets.armv7-unknown-linux-gnueabi and armv7-unknown-linux-musleabi targets.CROSS_UNSTABLE_ENABLE_DOCTESTS=true.--list to known subcommands.build.default-targetmips64-unknown-linux-muslabi64 and mips64el-unknown-linux-muslabi64 supportx86_64-unknown-dragonfly target.arm-unknown-linux-gnueabihf to build for ARMv6, and add architecture for crosstool-ng-based images.emcc version 3.1.10BINDGEN_EXTRA_CLANG_ARGS environment variable to pass sysroot to rust-bindgenCACHEDIR.TAG when creating the target directory, similar to cargo.CARGO_BUILD_TARGET as an alias for CROSS_BUILD_TARGETtarget.$(...) config options override build ones.DOCKER_OPTS.PKG_CONFIG_PATH to all *-linux-gnu images.libc++_shared.so.CROSS_DEBUG and CROSS_RUNNER on android images.powerpc64-unknown-linux-gnu imagesparc64-unknown-linux-gnu imagelibprocstat.so to FreeBSD imagescargo build-docker-image $TARGET0.22.1Full Changelog: v0.2.1...v0.2.2
Added support for mounting volumes.
CROSS_CUSTOM_TOOLCHAIN to disable automatic installation of components for use with tools like cargo-bisect-rustcCROSS_CONTAINER_IN_CONTAINER environment variable to replace CROSS_DOCKER_IN_DOCKER.CROSS_REMOTE environment variable. also adds in utility commands to create and remove persistent data volumes.build-std config option, which builds the rust standard library from source if enabled.target.{target}.dockerfile[.file], target.{target}.dockerfile.context and target.{target}.dockerfile.build-args to invoke docker/podman build before using an image.target.{target}.pre-build config for running commands before building the image.CROSS_CONTAINER_OPTS environment variable to replace DOCKER_OPTS.cross-util and xtask commands.Cargo.toml as configuration sourcethumbv7neon-* targets.armv7-unknown-linux-gnueabi and armv7-unknown-linux-musleabi targets.CROSS_UNSTABLE_ENABLE_DOCTESTS=true.--list to known subcommands.build.default-targetmips64-unknown-linux-muslabi64 and mips64el-unknown-linux-muslabi64 supportx86_64-unknown-dragonfly target.arm-unknown-linux-gnueabihf to build for ARMv6, and add architecture for crosstool-ng-based images.emcc version 3.1.10BINDGEN_EXTRA_CLANG_ARGS environment variable to pass sysroot to rust-bindgenCACHEDIR.TAG when creating the target directory, similar to cargo.CARGO_BUILD_TARGET as an alias for CROSS_BUILD_TARGETtarget.$(...) config options override build ones.DOCKER_OPTS.PKG_CONFIG_PATH to all *-linux-gnu images.libc++_shared.so.CROSS_DEBUG and CROSS_RUNNER on android images.powerpc64-unknown-linux-gnu imagesparc64-unknown-linux-gnu imagelibprocstat.so to FreeBSD imagescargo build-docker-image $TARGET0.22.1Full Changelog: v0.2.1...v0.2.2-rc.1
e05d6a6 Disable powerpc64 and sparc64 images.
powerpc64 and sparc64 images.curl calls.dropbear.apt-key.xargo.--cache-from if image was pulled.apt-get --assume-yes in Dockerfilearm-unknown-linux-gnueabihf.i686-apple-darwin.x86_64-unknown-dragonfly.This list of changes was auto generated.
powerpc64-unknown-linux-gnu image.sparc64-unknown-linux-gnu image.x86_64-unknown-dragonfly image.i686-apple-darwin.29069d2 Make linux-image.sh easier to maintain.
linux-image.sh easier to maintain.--target-dir.purge_list.cargo doc.xargo.CommandExt.clippy warnings.0.2.0-alpha.1.Cargo.toml in project directory.emscripten.sh.home crate.node.sh.This list of changes was auto generated.
d64cfb8 Fix cross when stdin is not a TTY
native runner.emscripten targets again.cargo on the host when no image is found.-apple-ios components on macOS.versioned_image_name.This list of changes was auto generated.
asmjs-unknown-emscripten target.native runner instead of qemu-user for certain targets.Bump OpenSSL version to 1.0.2p.
arm-unknown-linux-musleabi target.armv7-unknown-linux-musleabihf target.aarch64-unknown-linux-musl, arm-unknown-linux-musleabihf,
armv5te-unknown-linux-musleabi, i586-unknown-linux-musl, mips-unknown-linux-musl,
add mipsel-unknown-linux-musl targets.Nothing published for this version
Support for the i586-unknown-linux-gnu target.
i586-unknown-linux-gnu target.Support for the custom [deb] subcommand.
deb subcommand.Partial test / run support for android targets. Using the android API via cross run / cross test is not supported because Cross is using QEMU instead of the official Android emulator.
Partial support for the sparcv9-sun-solaris and x86_64-sun-solaris targets. cross test and
cross run doesn't work for these new targets.
OpenSSL support for the i686-unknown-linux-musl target.
Support for cross check. This subcommand won't use any Docker container.
cross check. This subcommand won't use any Docker container.binfmt_misc is not required on the host for toolchain v1.19.0 and newer.
With these toolchains binfmt_misc interpreters don't need to be installed
on the host saving a privileged docker run which some systems don't allow.Build and test support for i686-pc-windows-gnu, x86_64-pc-windows-gnu, asmjs-unknown-emscripten and wasm-unknown-emscripten.
Build and test support for i686-pc-windows-gnu, x86_64-pc-windows-gnu,
asmjs-unknown-emscripten and wasm-unknown-emscripten.
Build support for aarch64-linux-android, arm-linux-androideabi,
armv7-linux-androideabi, x86_64-linux-android and i686-linux-android
A build.env.passthrough / build.target.*.passthrough option to Cross.toml
to support passing environment variables from the host to the Docker image.
Cross compilation support for x86_64-pc-windows-gnu
Cross compilation support for x86_64-pc-windows-gnu
Cross compilation support for Android targets
The automatic lockfile update that happens every time cross is invoked should no longer hit the network when there's no git dependency to add/update.
The automatic lockfile update that happens every time cross is invoked
should no longer hit the network when there's no git dependency to add/update.
The QEMU_STRACE variable is passed to the underlying Docker container. Paired
with cross run, this lets you get a trace of system call from the execution
of "foreign" (non x86_64) binaries.
Support for custom targets. Cross will now also try to use a docker image for them. As with the built-in targets, one can override the image using [ta
[target.{}.image] in Cross.toml.QEMU interpreters were being register when not required, e.g. for the x86_64-unknown-linux-gnu target.
x86_64-unknown-linux-gnu target.Stable releases were picking the wrong image (wrong tag: 0.1.5 instead of v0.1.5)
cross run support for the thumb targets.
cross run support for the thumb targets.
A build.xargo / target.$TARGET.xargo option to Cross.toml to use Xargo
instead of Cargo.
A target.$TARGET.image option to override the Docker image used for
$TARGET.
A sparc64-unknown-linux-gnu environment.
A x86_64-unknown-dragonfly environment.
Building older versions (<0.7.0) of the openssl crate is now supported.
Before Docker is invoked, cross will always (re)generate the lockfile to
avoid errors later on due to read/write permissions. This removes the need to
call cargo generate-lockfile before cross in all cases.
Support for the arm-unknown-linux-gnueabi target
Support for the arm-unknown-linux-gnueabi target
cross build support for:
i686-unknown-freebsdx86_64-unknown-freebsdx86_64-unknown-netbsdIt's no longer necessary to call cargo generate-lockfile before using
cross as cross will now take care of creating a lockfile when necessary.
The C environments for the thumb targets now include newlib (libc.a,
libm.a, etc.)
cross was trying to figure out the name of the user that
called it.Fix the i686-unknown-linux-musl target
i686-unknown-linux-musl targetSupport for i686-unknown-linux-musl
i686-unknown-linux-muslcross building crates for the thumbv*-none-eabi* targets.Support for x86_64-unknown-linux-musl
x86_64-unknown-linux-muslInitial release. Supports 12 targets.
<!-- prettier-ignore-start --> <!-- next-url -->
<!-- prettier-ignore-end -->
Your coding agent can read these notes before it upgrades. Set up the MCP server →