xref: /openbmc/qemu/tests/docker/dockerfiles/debian-riscv64-cross.docker (revision 0101dd71b061c0369931214b1a4b82258ef7a1fe)
1*0101dd71SAlex Bennée# THIS FILE WAS AUTO-GENERATED
2e100a967SAlex Bennée#
3*0101dd71SAlex Bennée#  $ lcitool dockerfile --layers all --cross riscv64 debian-sid qemu-minimal
4e100a967SAlex Bennée#
5*0101dd71SAlex Bennée# https://gitlab.com/libvirt/libvirt-ci
6*0101dd71SAlex Bennée
75c24acf3SAlex BennéeFROM docker.io/library/debian:sid-slim
85c24acf3SAlex Bennée
9*0101dd71SAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
10*0101dd71SAlex Bennée    apt-get update && \
11*0101dd71SAlex Bennée    apt-get install -y eatmydata && \
12*0101dd71SAlex Bennée    eatmydata apt-get dist-upgrade -y && \
13*0101dd71SAlex Bennée    eatmydata apt-get install --no-install-recommends -y \
14*0101dd71SAlex Bennée                      bash \
155c24acf3SAlex Bennée                      bc \
16*0101dd71SAlex Bennée                      bison \
175c24acf3SAlex Bennée                      ca-certificates \
18*0101dd71SAlex Bennée                      ccache \
19*0101dd71SAlex Bennée                      findutils \
203de61b98SAnton Johansson                      flex \
21*0101dd71SAlex Bennée                      gcc \
225c24acf3SAlex Bennée                      git \
233de61b98SAnton Johansson                      libglib2.0-dev \
24*0101dd71SAlex Bennée                      locales \
25*0101dd71SAlex Bennée                      make \
26*0101dd71SAlex Bennée                      meson \
275c24acf3SAlex Bennée                      ninja-build \
28*0101dd71SAlex Bennée                      pkgconf \
29a22a4b29SJohn Snow                      python3 \
30*0101dd71SAlex Bennée                      python3-venv \
31*0101dd71SAlex Bennée                      sed \
32*0101dd71SAlex Bennée                      tar && \
33*0101dd71SAlex Bennée    eatmydata apt-get autoremove -y && \
34*0101dd71SAlex Bennée    eatmydata apt-get autoclean -y && \
35*0101dd71SAlex Bennée    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
36*0101dd71SAlex Bennée    dpkg-reconfigure locales
375c24acf3SAlex Bennée
38*0101dd71SAlex BennéeENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
39*0101dd71SAlex BennéeENV LANG "en_US.UTF-8"
40*0101dd71SAlex BennéeENV MAKE "/usr/bin/make"
41*0101dd71SAlex BennéeENV NINJA "/usr/bin/ninja"
42*0101dd71SAlex BennéeENV PYTHON "/usr/bin/python3"
435c24acf3SAlex Bennée
44*0101dd71SAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
45*0101dd71SAlex Bennée    dpkg --add-architecture riscv64 && \
46*0101dd71SAlex Bennée    eatmydata apt-get install debian-ports-archive-keyring && \
47*0101dd71SAlex Bennée    eatmydata echo 'deb http://ftp.ports.debian.org/debian-ports/ sid main' > /etc/apt/sources.list.d/ports.list && \
48*0101dd71SAlex Bennée    eatmydata echo 'deb http://ftp.ports.debian.org/debian-ports/ unreleased main' >> /etc/apt/sources.list.d/ports.list && \
49*0101dd71SAlex Bennée    eatmydata apt-get update && \
50*0101dd71SAlex Bennée    eatmydata apt-get dist-upgrade -y && \
51*0101dd71SAlex Bennée    eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
52*0101dd71SAlex Bennée    eatmydata apt-get install --no-install-recommends -y \
53*0101dd71SAlex Bennée                      g++-riscv64-linux-gnu \
54e100a967SAlex Bennée                      gcc-riscv64-linux-gnu \
55*0101dd71SAlex Bennée                      libc6-dev:riscv64 \
562b5e0c9fSThomas Huth                      libfdt-dev:riscv64 \
575c24acf3SAlex Bennée                      libffi-dev:riscv64 \
585c24acf3SAlex Bennée                      libglib2.0-dev:riscv64 \
59*0101dd71SAlex Bennée                      libpixman-1-dev:riscv64 && \
60*0101dd71SAlex Bennée    eatmydata apt-get autoremove -y && \
61*0101dd71SAlex Bennée    eatmydata apt-get autoclean -y && \
62*0101dd71SAlex Bennée    mkdir -p /usr/local/share/meson/cross && \
63*0101dd71SAlex Bennée    printf "[binaries]\n\
64*0101dd71SAlex Bennéec = '/usr/bin/riscv64-linux-gnu-gcc'\n\
65*0101dd71SAlex Bennéear = '/usr/bin/riscv64-linux-gnu-gcc-ar'\n\
66*0101dd71SAlex Bennéestrip = '/usr/bin/riscv64-linux-gnu-strip'\n\
67*0101dd71SAlex Bennéepkgconfig = '/usr/bin/riscv64-linux-gnu-pkg-config'\n\
68*0101dd71SAlex Bennée\n\
69*0101dd71SAlex Bennée[host_machine]\n\
70*0101dd71SAlex Bennéesystem = 'linux'\n\
71*0101dd71SAlex Bennéecpu_family = 'riscv64'\n\
72*0101dd71SAlex Bennéecpu = 'riscv64'\n\
73*0101dd71SAlex Bennéeendian = 'little'\n" > /usr/local/share/meson/cross/riscv64-linux-gnu && \
74*0101dd71SAlex Bennée    dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
75*0101dd71SAlex Bennée    mkdir -p /usr/libexec/ccache-wrappers && \
76*0101dd71SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-c++ && \
77*0101dd71SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-cc && \
78*0101dd71SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-g++ && \
79*0101dd71SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-gcc
805c24acf3SAlex Bennée
81*0101dd71SAlex BennéeENV ABI "riscv64-linux-gnu"
82*0101dd71SAlex BennéeENV MESON_OPTS "--cross-file=riscv64-linux-gnu"
835c24acf3SAlex BennéeENV QEMU_CONFIGURE_OPTS --cross-prefix=riscv64-linux-gnu-
845c24acf3SAlex BennéeENV DEF_TARGET_LIST riscv64-softmmu,riscv64-linux-user
8593bd2954SAlex Bennée# As a final step configure the user (if env is defined)
8693bd2954SAlex BennéeARG USER
8793bd2954SAlex BennéeARG UID
8893bd2954SAlex BennéeRUN if [ "${USER}" ]; then \
8993bd2954SAlex Bennée  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
90