blob: 67450576fc6480e4749f5c19069925dfdebaf0d6 [file] [edit]
FROM ubuntu:24.04 AS qemu-builder
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
sudo \
wget \
build-essential \
python3 \
python3-pip \
python3-venv \
ninja-build \
clang \
libglib2.0-dev \
libpixman-1-dev \
flex \
bison
WORKDIR /src
RUN wget -nv https://download.qemu.org/qemu-9.2.2.tar.xz && tar xJf qemu-9.2.2.tar.xz
WORKDIR /src/qemu-9.2.2
RUN ./configure \
--cc=clang \
--cxx=clang++ \
--host-cc=clang \
--target-list=aarch64-linux-user \
--static \
--disable-tools \
--disable-system \
--disable-docs
RUN make -j$(nproc)
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
sudo \
software-properties-common \
build-essential \
vim \
git \
cmake \
ninja-build \
python3 \
python3-pip \
wget \
gnupg \
zip \
unzip \
&& rm -rf /var/lib/apt/lists/*
RUN wget https://apt.llvm.org/llvm.sh && \
chmod +x llvm.sh && \
./llvm.sh 20 && \
rm llvm.sh
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-20 100 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-20 100
RUN wget -nv https://github.com/bazelbuild/bazelisk/releases/download/v1.19.0/bazelisk-linux-arm64 -O /usr/local/bin/bazel && \
chmod +x /usr/local/bin/bazel
COPY --from=qemu-builder /src/qemu-9.2.2/build/qemu-aarch64 /usr/local/bin/qemu-aarch64
ARG USERNAME=xnnpack
ARG USER_UID=1001
ARG USER_GID=$USER_UID
RUN groupadd --gid $USER_GID $USERNAME && \
useradd --uid $USER_UID --gid $USER_GID -m $USERNAME
RUN echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USERNAME
RUN chmod 0440 /etc/sudoers.d/$USERNAME
USER $USERNAME
WORKDIR /home/$USERNAME