Merge pull request #40 from snobu/master

Added ARMhf target.

This is out of scope, but I'd love to use Rust on the Raspberry Pi, too, so let's merge it. :-)
This commit is contained in:
Eric Kidd 2018-03-25 18:11:05 -04:00 committed by GitHub
commit 32a8d3818d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 1 deletions

View file

@ -27,6 +27,7 @@ RUN apt-get update && \
pkgconf \ pkgconf \
sudo \ sudo \
xutils-dev \ xutils-dev \
gcc-4.7-multilib-arm-linux-gnueabihf \
&& \ && \
apt-get clean && rm -rf /var/lib/apt/lists/* && \ apt-get clean && rm -rf /var/lib/apt/lists/* && \
useradd rust --user-group --create-home --shell /bin/bash --groups sudo useradd rust --user-group --create-home --shell /bin/bash --groups sudo
@ -50,7 +51,8 @@ ENV PATH=/home/rust/.cargo/bin:/usr/local/musl/bin:/usr/local/sbin:/usr/local/bi
# manually. # manually.
RUN curl https://sh.rustup.rs -sSf | \ RUN curl https://sh.rustup.rs -sSf | \
sh -s -- -y --default-toolchain $TOOLCHAIN && \ sh -s -- -y --default-toolchain $TOOLCHAIN && \
rustup target add x86_64-unknown-linux-musl rustup target add x86_64-unknown-linux-musl && \
rustup target add armv7-unknown-linux-gnueabihf
ADD cargo-config.toml /home/rust/.cargo/config ADD cargo-config.toml /home/rust/.cargo/config
# Set up a `git credentials` helper for using GH_USER and GH_TOKEN to access # Set up a `git credentials` helper for using GH_USER and GH_TOKEN to access

View file

@ -9,6 +9,11 @@ alias rust-musl-builder='docker run --rm -it -v "$(pwd)":/home/rust/src ekidd/ru
rust-musl-builder cargo build --release rust-musl-builder cargo build --release
``` ```
To target ARM hard float (Raspberry Pi):
```sh
rust-musl-builder cargo build --target=armv7-unknown-linux-gnueabihf --release
```
This command assumes that `$(pwd)` is readable and writable by uid 1000, gid 1000. It will output binaries in `target/x86_64-unknown-linux-musl/release`. At the moment, it doesn't attempt to cache libraries between builds, so this is best reserved for making final release builds. This command assumes that `$(pwd)` is readable and writable by uid 1000, gid 1000. It will output binaries in `target/x86_64-unknown-linux-musl/release`. At the moment, it doesn't attempt to cache libraries between builds, so this is best reserved for making final release builds.
## Deploying your Rust application ## Deploying your Rust application

View file

@ -1,3 +1,6 @@
[build] [build]
# Target musl-libc by default when running Cargo. # Target musl-libc by default when running Cargo.
target = "x86_64-unknown-linux-musl" target = "x86_64-unknown-linux-musl"
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc-4.7"