# # Docker cross-compiler target for riscv64 # # Currently the only distro that gets close to cross compiling riscv64 # images is Debian Sid (with unofficial ports). As this is a moving # target we keep the library list minimal and are aiming to migrate # from this hack as soon as we are able. # FROM docker.io/library/debian:sid-slim # Add ports RUN apt update && \ DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \ DEBIAN_FRONTEND=noninteractive eatmydata apt update -yy && \ DEBIAN_FRONTEND=noninteractive eatmydata apt upgrade -yy # Install common build utilities RUN DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \ bison \ bc \ build-essential \ ca-certificates \ debian-ports-archive-keyring \ dpkg-dev \ flex \ gettext \ git \ libglib2.0-dev \ ninja-build \ pkg-config \ python3 # Add ports and riscv64 architecture RUN echo "deb http://ftp.ports.debian.org/debian-ports/ sid main" >> /etc/apt/sources.list RUN dpkg --add-architecture riscv64 # Duplicate deb line as deb-src RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list RUN apt update && \ DEBIAN_FRONTEND=noninteractive eatmydata \ apt install -y --no-install-recommends \ gcc-riscv64-linux-gnu \ libc6-dev-riscv64-cross \ libfdt-dev:riscv64 \ libffi-dev:riscv64 \ libglib2.0-dev:riscv64 \ libpixman-1-dev:riscv64 # Specify the cross prefix for this image (see tests/docker/common.rc) ENV QEMU_CONFIGURE_OPTS --cross-prefix=riscv64-linux-gnu- ENV DEF_TARGET_LIST riscv64-softmmu,riscv64-linux-user