xref: /openbmc/qemu/tests/docker/dockerfiles/debian-riscv64-cross.docker (revision 1f952d8cfdbc3caf169777ce416abbf1433f705c)
10101dd71SAlex Bennée# THIS FILE WAS AUTO-GENERATED
2e100a967SAlex Bennée#
3dcb8541bSPaolo Bonzini#  $ lcitool dockerfile --layers all --cross-arch riscv64 debian-sid qemu-minimal
4e100a967SAlex Bennée#
50101dd71SAlex Bennée# https://gitlab.com/libvirt/libvirt-ci
60101dd71SAlex Bennée
75c24acf3SAlex BennéeFROM docker.io/library/debian:sid-slim
85c24acf3SAlex Bennée
90101dd71SAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
100101dd71SAlex Bennée    apt-get update && \
110101dd71SAlex Bennée    apt-get install -y eatmydata && \
120101dd71SAlex Bennée    eatmydata apt-get dist-upgrade -y && \
130101dd71SAlex Bennée    eatmydata apt-get install --no-install-recommends -y \
140101dd71SAlex Bennée                      bash \
155c24acf3SAlex Bennée                      bc \
160101dd71SAlex Bennée                      bison \
175c24acf3SAlex Bennée                      ca-certificates \
180101dd71SAlex Bennée                      ccache \
190101dd71SAlex Bennée                      findutils \
203de61b98SAnton Johansson                      flex \
210101dd71SAlex Bennée                      gcc \
225c24acf3SAlex Bennée                      git \
233de61b98SAnton Johansson                      libglib2.0-dev \
240101dd71SAlex Bennée                      locales \
250101dd71SAlex Bennée                      make \
260101dd71SAlex Bennée                      meson \
275c24acf3SAlex Bennée                      ninja-build \
280101dd71SAlex Bennée                      pkgconf \
29a22a4b29SJohn Snow                      python3 \
300101dd71SAlex Bennée                      python3-venv \
310101dd71SAlex Bennée                      sed \
320101dd71SAlex Bennée                      tar && \
330101dd71SAlex Bennée    eatmydata apt-get autoremove -y && \
340101dd71SAlex Bennée    eatmydata apt-get autoclean -y && \
350101dd71SAlex Bennée    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
36*2355d18cSThomas Huth    dpkg-reconfigure locales && \
37*2355d18cSThomas Huth    rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
385c24acf3SAlex Bennée
390101dd71SAlex BennéeENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
400101dd71SAlex BennéeENV LANG "en_US.UTF-8"
410101dd71SAlex BennéeENV MAKE "/usr/bin/make"
420101dd71SAlex BennéeENV NINJA "/usr/bin/ninja"
430101dd71SAlex BennéeENV PYTHON "/usr/bin/python3"
445c24acf3SAlex Bennée
450101dd71SAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
460101dd71SAlex Bennée    dpkg --add-architecture riscv64 && \
470101dd71SAlex Bennée    eatmydata apt-get install debian-ports-archive-keyring && \
480101dd71SAlex Bennée    eatmydata echo 'deb http://ftp.ports.debian.org/debian-ports/ sid main' > /etc/apt/sources.list.d/ports.list && \
490101dd71SAlex Bennée    eatmydata echo 'deb http://ftp.ports.debian.org/debian-ports/ unreleased main' >> /etc/apt/sources.list.d/ports.list && \
500101dd71SAlex Bennée    eatmydata apt-get update && \
510101dd71SAlex Bennée    eatmydata apt-get dist-upgrade -y && \
520101dd71SAlex Bennée    eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
530101dd71SAlex Bennée    eatmydata apt-get install --no-install-recommends -y \
54e100a967SAlex Bennée                      gcc-riscv64-linux-gnu \
550101dd71SAlex Bennée                      libc6-dev:riscv64 \
562b5e0c9fSThomas Huth                      libfdt-dev:riscv64 \
575c24acf3SAlex Bennée                      libffi-dev:riscv64 \
585c24acf3SAlex Bennée                      libglib2.0-dev:riscv64 \
590101dd71SAlex Bennée                      libpixman-1-dev:riscv64 && \
600101dd71SAlex Bennée    eatmydata apt-get autoremove -y && \
610101dd71SAlex Bennée    eatmydata apt-get autoclean -y && \
620101dd71SAlex Bennée    mkdir -p /usr/local/share/meson/cross && \
630101dd71SAlex Bennée    printf "[binaries]\n\
640101dd71SAlex Bennéec = '/usr/bin/riscv64-linux-gnu-gcc'\n\
650101dd71SAlex Bennéear = '/usr/bin/riscv64-linux-gnu-gcc-ar'\n\
660101dd71SAlex Bennéestrip = '/usr/bin/riscv64-linux-gnu-strip'\n\
670101dd71SAlex Bennéepkgconfig = '/usr/bin/riscv64-linux-gnu-pkg-config'\n\
680101dd71SAlex Bennée\n\
690101dd71SAlex Bennée[host_machine]\n\
700101dd71SAlex Bennéesystem = 'linux'\n\
710101dd71SAlex Bennéecpu_family = 'riscv64'\n\
720101dd71SAlex Bennéecpu = 'riscv64'\n\
730101dd71SAlex Bennéeendian = 'little'\n" > /usr/local/share/meson/cross/riscv64-linux-gnu && \
740101dd71SAlex Bennée    dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
750101dd71SAlex Bennée    mkdir -p /usr/libexec/ccache-wrappers && \
760101dd71SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-cc && \
770101dd71SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-gcc
785c24acf3SAlex Bennée
790101dd71SAlex BennéeENV ABI "riscv64-linux-gnu"
800101dd71SAlex BennéeENV MESON_OPTS "--cross-file=riscv64-linux-gnu"
815c24acf3SAlex BennéeENV QEMU_CONFIGURE_OPTS --cross-prefix=riscv64-linux-gnu-
825c24acf3SAlex BennéeENV DEF_TARGET_LIST riscv64-softmmu,riscv64-linux-user
8393bd2954SAlex Bennée# As a final step configure the user (if env is defined)
8493bd2954SAlex BennéeARG USER
8593bd2954SAlex BennéeARG UID
8693bd2954SAlex BennéeRUN if [ "${USER}" ]; then \
8793bd2954SAlex Bennée  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
88