Skip to content

Instantly share code, notes, and snippets.

@shunghsiyu
Created December 18, 2024 05:13
Show Gist options
  • Save shunghsiyu/1bd4189654cce5b3e55c2ab8da7dd33d to your computer and use it in GitHub Desktop.
Save shunghsiyu/1bd4189654cce5b3e55c2ab8da7dd33d to your computer and use it in GitHub Desktop.
Example container description for building and running BPF selftests of stable 6.6 kernel
FROM debian:11-slim
ARG pahole_branch=master
ENV PAHOLE_BRANCH=$pahole_branch
ARG pahole_origin=https://git.kernel.org/pub/scm/devel/pahole/pahole.git
ENV PAHOLE_ORIGIN=$pahole_origin
ARG llvm_version=17
ENV LLVM_VERSION=$llvm_version
ENV CLANG=clang-$llvm_version
ENV LLVM_STRIP=llvm-strip-$llvm_version
RUN DEBIAN_FRONTEND=noninteractive apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
bc \
binutils-dev \
bison \
build-essential \
cmake \
elfutils \
flex \
git \
libdw-dev \
libelf-dev \
libguestfs-tools \
libssl-dev \
make \
ncurses-dev \
pahole \
python3-docutils \
qemu-kvm \
qemu-utils \
quilt \
gpg \
rsync \
software-properties-common \
sudo \
wget \
xz-utils \
zstd
RUN wget https://apt.llvm.org/llvm.sh \
&& chmod +x llvm.sh \
&& ./llvm.sh "$LLVM_VERSION"
RUN mkdir -p pahole \
&& cd pahole \
&& git init \
&& git remote add origin ${PAHOLE_ORIGIN} \
&& git fetch --depth=1 origin "${PAHOLE_BRANCH}" \
&& git checkout "${PAHOLE_BRANCH}" \
&& mkdir -p build \
&& cd build \
&& cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -D__LIB=lib .. \
&& make -j$((4*$(nproc))) \
&& make install \
&& export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:/usr/local/lib \
&& ldd $(which pahole) \
&& pahole --version
ENV LD_LIBRARY_PATH=/usr/local/lib
RUN useradd -m user
USER user
WORKDIR /home/user
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment