Created
December 18, 2024 05:13
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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