Skip to content

Commit b37d43e

Browse files
committed
Auto merge of rust-lang#117654 - alistair23:alistair/riscv-docker, r=Mark-Simulacrum
ci: docker: dist-various-1: Include RISC-V C compilers The compiler-builtins for RISC-V are missing some key functions, such as __bswapsi2 [1]. We can't just pull in the LLVM compiler-rt builtins as the rust-lang/rust distribution container doesn't have a C compiler [2]. This patch adds RISC-V C compilers to the CI Dockerfile as the first step towards enabling LLVM compiler-rt builtins for RISC-V Rust. 1: rust-lang/compiler-builtins#350 2: rust-lang/compiler-builtins@e4f46b9
2 parents e999d8b + d66a964 commit b37d43e

File tree

3 files changed

+30
-8
lines changed

3 files changed

+30
-8
lines changed

src/ci/docker/host-x86_64/dist-various-1/Dockerfile

+16-8
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ RUN ./install-x86_64-redox.sh
4949
COPY host-x86_64/dist-various-1/install-aarch64-none-elf.sh /build
5050
RUN ./install-aarch64-none-elf.sh
5151

52+
COPY host-x86_64/dist-various-1/install-riscv64-none-elf.sh /build
53+
RUN ./install-riscv64-none-elf.sh
54+
55+
COPY host-x86_64/dist-various-1/install-riscv32-none-elf.sh /build
56+
RUN ./install-riscv32-none-elf.sh
57+
5258
# Suppress some warnings in the openwrt toolchains we downloaded
5359
ENV STAGING_DIR=/tmp
5460

@@ -105,9 +111,6 @@ ENV TARGETS=$TARGETS,armv7r-none-eabihf
105111
ENV TARGETS=$TARGETS,thumbv7neon-unknown-linux-gnueabihf
106112
ENV TARGETS=$TARGETS,armv7a-none-eabi
107113

108-
# riscv targets currently do not need a C compiler, as compiler_builtins
109-
# doesn't currently have it enabled, and the riscv gcc compiler is not
110-
# installed.
111114
ENV CFLAGS_armv5te_unknown_linux_musleabi="-march=armv5te -marm -mfloat-abi=soft" \
112115
CFLAGS_arm_unknown_linux_musleabi="-march=armv6 -marm" \
113116
CFLAGS_arm_unknown_linux_musleabihf="-march=armv6 -marm -mfpu=vfp" \
@@ -125,11 +128,16 @@ ENV CFLAGS_armv5te_unknown_linux_musleabi="-march=armv5te -marm -mfloat-abi=soft
125128
CFLAGS_aarch64_unknown_none_softfloat=-mstrict-align -march=armv8-a+nofp+nosimd \
126129
CC_aarch64_unknown_none=aarch64-none-elf-gcc \
127130
CFLAGS_aarch64_unknown_none=-mstrict-align -march=armv8-a+fp+simd \
128-
CC_riscv32i_unknown_none_elf=false \
129-
CC_riscv32imc_unknown_none_elf=false \
130-
CC_riscv32imac_unknown_none_elf=false \
131-
CC_riscv64imac_unknown_none_elf=false \
132-
CC_riscv64gc_unknown_none_elf=false
131+
CC_riscv32i_unknown_none_elf=riscv32-unknown-elf-gcc \
132+
CFLAGS_riscv32i_unknown_none_elf=-march=rv32i -mabi=ilp32 \
133+
CC_riscv32imc_unknown_none_elf=riscv32-unknown-elf-gcc \
134+
CFLAGS_riscv32imc_unknown_none_elf=-march=rv32imc -mabi=ilp32 \
135+
CC_riscv32imac_unknown_none_elf=riscv32-unknown-elf-gcc \
136+
CFLAGS_riscv32imac_unknown_none_elf=-march=rv32imac -mabi=ilp32 \
137+
CC_riscv64imac_unknown_none_elf=riscv64-unknown-elf-gcc \
138+
CFLAGS_riscv64imac_unknown_none_elf=-march=rv64imac -mabi=lp64 \
139+
CC_riscv64gc_unknown_none_elf=riscv64-unknown-elf-gcc \
140+
CFLAGS_riscv64gc_unknown_none_elf=-march=rv64gc -mabi=lp64
133141

134142
ENV RUST_CONFIGURE_ARGS \
135143
--musl-root-armv5te=/musl-armv5te \
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
# Originally from https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2023.10.18/riscv32-elf-ubuntu-22.04-gcc-nightly-2023.10.18-nightly.tar.gz
6+
curl -L https://ci-mirrors.rust-lang.org/rustc/riscv32-elf-ubuntu-22.04-gcc-nightly-2023.10.18-nightly.tar.gz \
7+
| tar --extract --gz --strip 1 --directory /usr/local
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
# Originally from https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2023.10.18/riscv64-elf-ubuntu-22.04-gcc-nightly-2023.10.18-nightly.tar.gz
6+
curl -L https://ci-mirrors.rust-lang.org/rustc/riscv64-elf-ubuntu-22.04-gcc-nightly-2023.10.18-nightly.tar.gz \
7+
| tar --extract --gz --strip 1 --directory /usr/local

0 commit comments

Comments
 (0)