Skip to content

Commit 176bf3c

Browse files
committedFeb 28, 2020
AArch64 bare-metal targets: Build rust-std
This patch enables building of rust-std for the aarch64 bare-metal targets. For the compiler intrinsics, it fetches the AArch64 bare-metal target (aarch64-none-elf) GCC for the A-profile provided by ARM itself from https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
1 parent a8437cf commit 176bf3c

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed
 

‎src/ci/docker/dist-various-1/Dockerfile

+9
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ RUN ./install-mips-musl.sh
7272
COPY dist-various-1/install-mipsel-musl.sh /build
7373
RUN ./install-mipsel-musl.sh
7474

75+
COPY dist-various-1/install-aarch64-none-elf.sh /build
76+
RUN ./install-aarch64-none-elf.sh
77+
7578
# Suppress some warnings in the openwrt toolchains we downloaded
7679
ENV STAGING_DIR=/tmp
7780

@@ -140,6 +143,8 @@ ENV TARGETS=$TARGETS,armv5te-unknown-linux-gnueabi
140143
ENV TARGETS=$TARGETS,armv5te-unknown-linux-musleabi
141144
ENV TARGETS=$TARGETS,armv7-unknown-linux-musleabihf
142145
ENV TARGETS=$TARGETS,aarch64-unknown-linux-musl
146+
ENV TARGETS=$TARGETS,aarch64-unknown-none
147+
ENV TARGETS=$TARGETS,aarch64-unknown-none-softfloat
143148
ENV TARGETS=$TARGETS,sparc64-unknown-linux-gnu
144149
ENV TARGETS=$TARGETS,x86_64-unknown-redox
145150
ENV TARGETS=$TARGETS,thumbv6m-none-eabi
@@ -178,6 +183,10 @@ ENV CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \
178183
CC_armv7a_none_eabihf=arm-none-eabi-gcc \
179184
CFLAGS_armv7a_none_eabi=-march=armv7-a \
180185
CFLAGS_armv7a_none_eabihf=-march=armv7-a+vfpv3 \
186+
CC_aarch64_unknown_none_softfloat=aarch64-none-elf-gcc \
187+
CFLAGS_aarch64_unknown_none_softfloat=-mstrict-align -march=armv8-a+nofp+nosimd \
188+
CC_aarch64_unknown_none=aarch64-none-elf-gcc \
189+
CFLAGS_aarch64_unknown_none=-mstrict-align -march=armv8-a+fp+simd \
181190
CC_riscv64gc_unknown_linux_gnu=riscv64-unknown-linux-gnu-gcc \
182191
AR_riscv64gc_unknown_linux_gnu=riscv64-unknown-linux-gnu-ar \
183192
CXX_riscv64gc_unknown_linux_gnu=riscv64-unknown-linux-gnu-g++ \
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
curl -L https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf.tar.xz \
6+
| tar --extract --xz --strip 1 --directory /usr/local

‎src/tools/build-manifest/src/main.rs

+2
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ static TARGETS: &[&str] = &[
5656
"aarch64-unknown-hermit",
5757
"aarch64-unknown-linux-gnu",
5858
"aarch64-unknown-linux-musl",
59+
"aarch64-unknown-none",
60+
"aarch64-unknown-none-softfloat",
5961
"aarch64-unknown-redox",
6062
"arm-linux-androideabi",
6163
"arm-unknown-linux-gnueabi",

0 commit comments

Comments
 (0)
Please sign in to comment.