Skip to content

Commit 678e3d7

Browse files
Merge #984
984: Add Linux images for `riscv64gc-unknown-linux-gnu`. r=Emilgardis a=Alexhuszagh Co-authored-by: Alex Huszagh <[email protected]>
2 parents 557bac5 + f9af925 commit 678e3d7

File tree

5 files changed

+27
-4
lines changed

5 files changed

+27
-4
lines changed

.changes/984.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"description": "added linux images for `riscv64gc-unknown-linux-gnu` to allow full system emulation.",
3+
"type": "added"
4+
}

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ jobs:
172172
- { target: powerpc-unknown-linux-gnu, os: ubuntu-latest, cpp: 1, dylib: 1, std: 1, run: 1, runners: qemu-user qemu-system }
173173
- { target: powerpc64-unknown-linux-gnu, os: ubuntu-latest, cpp: 1, dylib: 1, std: 1, run: 1, runners: qemu-user qemu-system }
174174
- { target: powerpc64le-unknown-linux-gnu, os: ubuntu-latest, cpp: 1, dylib: 1, std: 1, run: 1, runners: qemu-user qemu-system }
175-
- { target: riscv64gc-unknown-linux-gnu, os: ubuntu-latest, cpp: 1, std: 1, run: 1 }
175+
- { target: riscv64gc-unknown-linux-gnu, os: ubuntu-latest, cpp: 1, std: 1, run: 1, runners: qemu-user qemu-system }
176176
- { target: s390x-unknown-linux-gnu, os: ubuntu-latest, cpp: 1, dylib: 1, std: 1, run: 1, runners: qemu-user qemu-system }
177177
- { target: sparc64-unknown-linux-gnu, os: ubuntu-latest, cpp: 1, dylib: 1, std: 1, run: 1, runners: qemu-user qemu-system }
178178
- { target: aarch64-unknown-linux-musl, os: ubuntu-latest, cpp: 1, dylib: 1, std: 1, run: 1 }

docker/Dockerfile.riscv64gc-unknown-linux-gnu

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ ARG DEBIAN_FRONTEND=noninteractive
44
COPY common.sh lib.sh /
55
RUN /common.sh
66

7-
# COPY cmake.sh /
8-
# RUN /cmake.sh
7+
COPY cmake.sh /
8+
RUN /cmake.sh
99

1010
COPY xargo.sh /
1111
RUN /xargo.sh
@@ -20,7 +20,13 @@ RUN TARGET_ARCH=riscv64 /deny-debian-packages.sh \
2020
binutils-riscv64-linux-gnu
2121

2222
COPY qemu.sh /
23-
RUN /qemu.sh riscv64
23+
RUN /qemu.sh riscv64 softmmu
24+
25+
COPY dropbear.sh /
26+
RUN /dropbear.sh
27+
28+
COPY linux-image.sh /
29+
RUN /linux-image.sh riscv64
2430

2531
COPY linux-runner /
2632

docker/linux-image.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@ main() {
134134
kernel="5.*-powerpc64le"
135135
deps=(libcrypt1:"${arch}")
136136
;;
137+
riscv64)
138+
kernel="5.*-riscv64"
139+
debsource="deb http://ftp.ports.debian.org/debian-ports unstable main"
140+
debsource="${debsource}\ndeb http://ftp.ports.debian.org/debian-ports unreleased main"
141+
deps=(libcrypt1:"${arch}")
142+
;;
137143
s390x)
138144
arch=s390x
139145
kernel="5.*-s390x"

docker/linux-runner

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ case "${arch}" in
9898
opt="-append console=ttyPZ0"
9999
n=1
100100
;;
101+
riscv64)
102+
opt="-machine virt"
103+
;;
101104
powerpc64|powerpc64le)
102105
opt="-append console=hvc0 --nodefaults -serial stdio"
103106
;;
@@ -140,12 +143,16 @@ esac
140143
else
141144
${QEMU_CMD} >> "${LOG}" 2>&1 &
142145
fi
146+
qemu_pid=$!
143147

144148
# wait for dropbear
145149
for _ in $(seq 240); do
146150
if grep -q "Not backgrounding" "${LOG}"; then
147151
READY=1
148152
break
153+
elif ! (ps -p "${qemu_pid}" >/dev/null 2>&1); then
154+
# qemu command failed and exited early
155+
exit 1
149156
fi
150157
sleep 0.5s
151158
done

0 commit comments

Comments
 (0)