[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH for-next 6/6] automation: add container for riscv64 builds
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@xxxxxxxxx> --- automation/build/archlinux/riscv64.dockerfile | 32 +++++++++++++++++++ automation/scripts/containerize | 1 + 2 files changed, 33 insertions(+) create mode 100644 automation/build/archlinux/riscv64.dockerfile diff --git a/automation/build/archlinux/riscv64.dockerfile b/automation/build/archlinux/riscv64.dockerfile new file mode 100644 index 0000000000..d94048b6c3 --- /dev/null +++ b/automation/build/archlinux/riscv64.dockerfile @@ -0,0 +1,32 @@ +FROM archlinux/base +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx" + +# Packages needed for the build +RUN pacman --noconfirm -Syu \ + base-devel \ + gcc \ + git + +# Packages needed for QEMU +RUN pacman --noconfirm -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} + +RUN useradd --create-home user +USER user +WORKDIR /build diff --git a/automation/scripts/containerize b/automation/scripts/containerize index da45baed4e..1901e8c0ef 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -25,6 +25,7 @@ die() { BASE="registry.gitlab.com/xen-project/xen" case "_${CONTAINER}" in _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";; -- 2.27.0
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |