new file mode 100644
@@ -0,0 +1,33 @@
+FROM archlinux
+LABEL maintainer.name="The Xen Project" \
+ maintainer.email="xen-devel@lists.xenproject.org"
+
+# Packages needed for the build
+RUN pacman --noconfirm --needed -Syu \
+ base-devel \
+ gcc \
+ git
+
+# Packages needed for QEMU
+RUN pacman --noconfirm --needed -Syu \
+ pixman \
+ python \
+ sh
+
+# There is a regression in GDB that causes an assertion error
+# when setting breakpoints, use this commit until it is fixed!
+RUN git clone --recursive -j$(nproc) --progress https://github.com/riscv/riscv-gnu-toolchain && \
+ cd riscv-gnu-toolchain/riscv-gdb && \
+ git checkout 1dd588507782591478882a891f64945af9e2b86c && \
+ cd .. && \
+ ./configure --prefix=/opt/riscv && \
+ make linux -j$(nproc) && \
+ rm -R /riscv-gnu-toolchain
+
+# Add compiler path
+ENV PATH=/opt/riscv/bin/:${PATH}
+ENV CROSS_COMPILE=riscv64-unknown-linux-gnu-
+
+RUN useradd --create-home user
+USER user
+WORKDIR /build
@@ -26,6 +26,7 @@ BASE="registry.gitlab.com/xen-project/xen"
case "_${CONTAINER}" in
_alpine) CONTAINER="${BASE}/alpine:3.12" ;;
_archlinux|_arch) CONTAINER="${BASE}/archlinux:current" ;;
+ _riscv64) CONTAINER="${BASE}/archlinux:riscv64" ;;
_centos7) CONTAINER="${BASE}/centos:7" ;;
_centos72) CONTAINER="${BASE}/centos:7.2" ;;
_fedora) CONTAINER="${BASE}/fedora:29";;
Add a container for cross-compiling xen to riscv64. This just includes the cross-compiler and necessary packages for building xen itself (packages for tools, stubdoms, etc., can be added later). To build xen in the container run the following: $ make XEN_TARGET_ARCH=riscv64 SUBSYSTEMS=xen Signed-off-by: Connor Davis <connojdavis@gmail.com> --- automation/build/archlinux/riscv64.dockerfile | 33 +++++++++++++++++++ automation/scripts/containerize | 1 + 2 files changed, 34 insertions(+) create mode 100644 automation/build/archlinux/riscv64.dockerfile