Skip to content

Commit 6fa3870

Browse files
committed
Run sparc64-unknown-linux-gnu tests on qemu system
1 parent a6c7091 commit 6fa3870

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

ci/docker/sparc64-unknown-linux-gnu/Dockerfile

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22
FROM ubuntu:17.04
33

44
RUN apt-get update && apt-get install -y --no-install-recommends \
5-
gcc libc6-dev qemu-user ca-certificates \
6-
gcc-sparc64-linux-gnu libc6-dev-sparc64-cross
5+
curl ca-certificates \
6+
gcc libc6-dev \
7+
gcc-sparc64-linux-gnu libc6-dev-sparc64-cross \
8+
qemu-system-sparc64 openbios-sparc seabios ipxe-qemu \
9+
p7zip-full cpio
10+
11+
COPY linux-sparc64.sh /
12+
RUN bash /linux-sparc64.sh
13+
14+
COPY test-runner-linux /
715

816
ENV CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_LINKER=sparc64-linux-gnu-gcc \
9-
# TODO: in theory we should execute this, but qemu segfaults immediately
10-
# see https://github.com/rust-lang/libc/issues/822
11-
# CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-sparc64 -L /usr/sparc64-linux-gnu" \
12-
CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER=true \
17+
CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="/test-runner-linux sparc64" \
1318
CC_sparc64_unknown_linux_gnu=sparc64-linux-gnu-gcc \
1419
PATH=$PATH:/rust/bin

ci/linux-sparc64.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
set -ex
2+
3+
mkdir -m 777 /qemu
4+
cd /qemu
5+
6+
curl -LO https://cdimage.debian.org/cdimage/ports/debian-9.0-sparc64-NETINST-1.iso
7+
7z e debian-9.0-sparc64-NETINST-1.iso boot/initrd.gz
8+
7z e debian-9.0-sparc64-NETINST-1.iso boot/sparc64
9+
mv sparc64 kernel
10+
rm debian-9.0-sparc64-NETINST-1.iso
11+
12+
mkdir init
13+
cd init
14+
gunzip -c ../initrd.gz | cpio -id
15+
rm ../initrd.gz
16+
cp /usr/sparc64-linux-gnu/lib/libgcc_s.so.1 usr/lib/
17+
chmod a+w .

0 commit comments

Comments
 (0)