riscv-toolchain.Dockerfile
1 FROM ubuntu:24.04 2 3 RUN apt-get update && \ 4 DEBIAN_FRONTEND=noninteractive \ 5 apt-get install -y --no-install-recommends \ 6 autoconf automake autotools-dev curl python3 python3-venv python3-pip bc lsb-release \ 7 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential \ 8 bison flex texinfo gperf libtool patchutils zlib1g-dev device-tree-compiler \ 9 libexpat-dev ninja-build git ca-certificates python-is-python3 \ 10 libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev && \ 11 rm -rf /var/lib/apt/lists/* 12 13 RUN git clone --shallow-since=2024.11.20 https://github.com/riscv-collab/riscv-gnu-toolchain && \ 14 cd riscv-gnu-toolchain && \ 15 git checkout 2024.11.22 && \ 16 ./configure --with-multilib-generator="rv32i-ilp32--a*zifence*zicsr;rv32im-ilp32--a*zifence*zicsr;rv32ic-ilp32--a*zifence*zicsr;rv32imc-ilp32--a*zifence*zicsr;rv32imfc-ilp32f--a*zifence;rv32imc_zba_zbb_zbc_zbs_zicond-ilp32--a*zifence*zicsr" && \ 17 make -j$(nproc) && \ 18 cd / && rm -rf riscv-gnu-toolchain 19 20 RUN git clone --shallow-since=2024.10.01 https://github.com/riscv-software-src/riscv-isa-sim.git spike && \ 21 cd spike && \ 22 git checkout 7812eabb441eaf2067d07636a382eca622e48814 && \ 23 mkdir build/ install/ && \ 24 cd build/ && \ 25 ../configure --prefix=/spike/install/ && \ 26 make -j$(nproc) && \ 27 make install && \ 28 cd .. && \ 29 rm -rf build/ 30 31 RUN git clone --depth=1 https://github.com/pyenv/pyenv.git .pyenv && \ 32 export PATH=/.pyenv/bin:$PATH && \ 33 export PYENV_ROOT=/root/.pyenv && \ 34 eval "$(pyenv init --path)" && \ 35 pyenv install 3.6.15 && \ 36 pyenv global 3.6.15 && \ 37 python -m venv venv3.6 && \ 38 . venv3.6/bin/activate && \ 39 python -m pip install --upgrade pip && \ 40 python -m pip install riscof && \ 41 pyenv global system