diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-03-13 20:01:59 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-13 20:01:59 +0100 |
| commit | 3c943d0eaad441784b6f79cdaaa99f6b7ff2ad63 (patch) | |
| tree | 17d05dbf557f4d4b739b06ad395db238b25342c4 | |
| parent | 2f9bc56e5a21534326f4483f3f6381175ada2cea (diff) | |
| parent | 9c5616a19569fad7c14f789fd9a048b6a054c86f (diff) | |
| download | rust-3c943d0eaad441784b6f79cdaaa99f6b7ff2ad63.tar.gz rust-3c943d0eaad441784b6f79cdaaa99f6b7ff2ad63.zip | |
Rollup merge of #94777 - lancethepants:armv7-unknown-linux-uclibceabi, r=Mark-Simulacrum
Update armv7-unknown-linux-uclibceabi platform support page. A few edits and fixes to the support page for the armv7-unknown-linux-uclibceabi target.
| -rw-r--r-- | src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md b/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md index d58b8570595..71afca527d1 100644 --- a/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md +++ b/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md @@ -36,8 +36,8 @@ target = ["armv7-unknown-linux-uclibceabi"] cc = "/path/to/arm-unknown-linux-uclibcgnueabi-gcc" cxx = "/path/to/arm-unknown-linux-uclibcgnueabi-g++" ar = "path/to/arm-unknown-linux-uclibcgnueabi-ar" -ranlib = "path/to/arm-unknown-linux-uclibcgnueabi-" -linker = "/path/to/arm-unknown-linux-uclibcgnueabi-" +ranlib = "path/to/arm-unknown-linux-uclibcgnueabi-ranlib" +linker = "/path/to/arm-unknown-linux-uclibcgnueabi-gcc" ``` ## Building Rust programs @@ -75,27 +75,37 @@ To cross compile, you'll need to: ``` * Build with: ```text - CC=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-gcc \ - CXX=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-g++ \ - AR=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-ar \ + CC_armv7_unknown_linux_uclibceabi=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-gcc \ + CXX_armv7_unknown_linux_uclibceabi=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-g++ \ + AR_armv7_unknown_linux_uclibceabi=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-ar \ + CFLAGS_armv7_unknown_linux_uclibceabi="-march=armv7-a -mtune=cortex-a9" \ + CXXFLAGS_armv7_unknown_linux_uclibceabi="-march=armv7-a -mtune=cortex-a9" \ CARGO_TARGET_ARMV7_UNKNOWN_LINUX_UCLIBCEABI_LINKER=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-gcc \ CARGO_TARGET_ARMV7_UNKNOWN_LINUX_UCLIBCEABI_RUSTFLAGS='-Clink-arg=-s -Clink-arg=-Wl,--dynamic-linker=/mmc/lib/ld-uClibc.so.1 -Clink-arg=-Wl,-rpath,/mmc/lib' \ - cargo +stage2 build --target armv7-unknown-linux-uclibceabi --release + cargo +stage2 \ + build \ + --target armv7-unknown-linux-uclibceabi \ + --release ``` * Copy the binary to your target device and run. -We specify `CC`, `CXX`, and `AR` because somtimes a project or a subproject requires the use of your `'C'` cross toolchain. Since Tomatoware has a modified sysroot we also pass via RUSTFLAGS the location of the dynamic-linker and rpath. +We specify `CC`, `CXX`, `AR`, `CFLAGS`, and `CXXFLAGS` environment variables because somtimes a project or a subproject requires the use of your `'C'` cross toolchain. Since Tomatoware has a modified sysroot we also pass via RUSTFLAGS the location of the dynamic-linker and rpath. ### Test with QEMU To test a cross-compiled binary on your build system follow the instructions for `Cross Compilation`, install `qemu-arm-static`, and run with the following. ```text -CC=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-gcc \ -CXX=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-g++ \ -AR=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-ar \ +CC_armv7_unknown_linux_uclibceabi=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-gcc \ +CXX_armv7_unknown_linux_uclibceabi=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-g++ \ +AR_armv7_unknown_linux_uclibceabi=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-ar \ +CFLAGS_armv7_unknown_linux_uclibceabi="-march=armv7-a -mtune=cortex-a9" \ +CXXFLAGS_armv7_unknown_linux_uclibceabi="-march=armv7-a -mtune=cortex-a9" \ CARGO_TARGET_ARMV7_UNKNOWN_LINUX_UCLIBCEABI_LINKER=/opt/tomatoware/arm-soft-mmc/bin/arm-linux-gcc \ CARGO_TARGET_ARMV7_UNKNOWN_LINUX_UCLIBCEABI_RUNNER="qemu-arm-static -L /opt/tomatoware/arm-soft-mmc/arm-tomatoware-linux-uclibcgnueabi/sysroot/" \ -cargo +stage2 run --target armv7-unknown-linux-uclibceabi --release +cargo +stage2 \ +run \ +--target armv7-unknown-linux-uclibceabi \ +--release ``` ### Run in a chroot |
