cross 0.1.15-dev

Zero setup cross compilation and cross testing
# Change Log

All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]

- Images are now hosted at https://hub.docker.com/r/rustembedded/cross.
- Bump OpenSSL version to 1.0.2p.
- Bump musl version to 1.1.20.
- Bump Ubuntu to 18.04 to all musl targets.
- Bump gcc version to 6.3.0 for all musl targets.
- OpenSSL support for the `arm-unknown-linux-musleabi` target.
- OpenSSL support for the `armv7-unknown-linux-musleabihf` target.
- Build and test support for `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.

## [v0.1.14] - 2017-11-22

### Added

- Support for the `i586-unknown-linux-gnu` target.

### Changed

- Downgraded the Solaris toolchains from 2.11 to 2.10 to make the binaries produced by Cross more
  compatible (this version matches what rust-lang/rust is using).

## [v0.1.13] - 2017-11-08

### Added

- Support for the custom [`deb`] subcommand.

[`deb`]: https://github.com/mmstick/cargo-deb

- 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.

### Changed

- Bump OpenSSL version to 1.0.2m.

## [v0.1.12] - 2017-09-22

### Added

- Support for `cross check`. This subcommand won't use any Docker container.

### Changed

- `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.

## [v0.1.11] - 2017-06-10

### Added

- 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.

### Changed

- Bumped OpenSSL version to 1.0.2k
- Bumped QEMU version to 2.9.0

## [v0.1.10] - 2017-04-02

### Added

- Cross compilation support for `x86_64-pc-windows-gnu`

- Cross compilation support for Android targets

### Changed

- Bumped OpenSSL version to 1.0.2k

## [v0.1.9] - 2017-02-08

### Added

- Support for ARM MUSL targets.

### Changed

- 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.

## [v0.1.8] - 2017-01-21

### Added

- 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
  `[target.{}.image]` in Cross.toml.

### Changed

- Moved to a newer Xargo: v0.3.5

## [v0.1.7] - 2017-01-19

### Changed

- Moved to a newer Xargo: v0.3.4

### Fixed

- QEMU interpreters were being register when not required, e.g. for the
  `x86_64-unknown-linux-gnu` target.

## [v0.1.6] - 2017-01-14

### Fixed

- Stable releases were picking the wrong image (wrong tag: 0.1.5 instead of
  v0.1.5)

## [v0.1.5] - 2017-01-14 [YANKED]

### Added

- `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.

### Changed

- 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.

## [v0.1.4] - 2017-01-07

### Added

- Support for the `arm-unknown-linux-gnueabi` target

- `cross build` support for:
  - `i686-unknown-freebsd`
  - `x86_64-unknown-freebsd`
  - `x86_64-unknown-netbsd`

### Changed

- It'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.)

### Fixed

- A segfault when `cross` was trying to figure out the name of the user that
  called it.

## [v0.1.3] - 2017-01-01

### Changed

- Fix the `i686-unknown-linux-musl` target

## [v0.1.2] - 2016-12-31

### Added

- Support for `i686-unknown-linux-musl`
- Support for `cross build`ing crates for the `thumbv*-none-eabi*` targets.

## [v0.1.1] - 2016-12-28

### Added

- Support for `x86_64-unknown-linux-musl`
- Print shell commands when the verbose flag is used.
- Support crossing from x86_64 osx to i686 osx

## v0.1.0 - 2016-12-26

- Initial release. Supports 12 targets.

[Unreleased]: https://github.com/rust-embedded/cross/compare/v0.1.14...HEAD
[v0.1.14]: https://github.com/rust-embedded/cross/compare/v0.1.13...v0.1.14
[v0.1.13]: https://github.com/rust-embedded/cross/compare/v0.1.12...v0.1.13
[v0.1.12]: https://github.com/rust-embedded/cross/compare/v0.1.11...v0.1.12
[v0.1.11]: https://github.com/rust-embedded/cross/compare/v0.1.10...v0.1.11
[v0.1.10]: https://github.com/rust-embedded/cross/compare/v0.1.9...v0.1.10
[v0.1.9]: https://github.com/rust-embedded/cross/compare/v0.1.8...v0.1.9
[v0.1.8]: https://github.com/rust-embedded/cross/compare/v0.1.7...v0.1.8
[v0.1.7]: https://github.com/rust-embedded/cross/compare/v0.1.6...v0.1.7
[v0.1.6]: https://github.com/rust-embedded/cross/compare/v0.1.5...v0.1.6
[v0.1.5]: https://github.com/rust-embedded/cross/compare/v0.1.4...v0.1.5
[v0.1.4]: https://github.com/rust-embedded/cross/compare/v0.1.3...v0.1.4
[v0.1.3]: https://github.com/rust-embedded/cross/compare/v0.1.2...v0.1.3
[v0.1.2]: https://github.com/rust-embedded/cross/compare/v0.1.1...v0.1.2
[v0.1.1]: https://github.com/rust-embedded/cross/compare/v0.1.0...v0.1.1