mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-19 01:06:27 +00:00
* add riscv64 kernels to kernel/Makefile and kernel/Dockerfile.*, riscv64 kernel config, bump alpine version for kernel builds Signed-off-by: Avi Deitcher <avi@deitcher.net> * update bcc to v0.32.0 to include needed fixes Signed-off-by: Avi Deitcher <avi@deitcher.net> * bump kernel builder alpine base to version including llvm19 Signed-off-by: Avi Deitcher <avi@deitcher.net> * in kernel-bcc, automatically determine python path Signed-off-by: Avi Deitcher <avi@deitcher.net> * in kernel-perf, suppress newer gcc errors Signed-off-by: Avi Deitcher <avi@deitcher.net> * riscv path in kernel build was incorrect Signed-off-by: Avi Deitcher <avi@deitcher.net> * remove bcc compilation from kernel Signed-off-by: Avi Deitcher <avi@deitcher.net> * update usages of kernel/6.6.13 to kernel/6.6.71 Signed-off-by: Avi Deitcher <avi@deitcher.net> * next run of updating kernel config Signed-off-by: Avi Deitcher <avi@deitcher.net> * update test dependencies on kernel hash version Signed-off-by: Avi Deitcher <avi@deitcher.net> --------- Signed-off-by: Avi Deitcher <avi@deitcher.net>
65 lines
1.3 KiB
Docker
65 lines
1.3 KiB
Docker
# This Dockerfile extracts the source code and headers from a kernel package,
|
|
# builds the perf utility, and places it into a scratch image
|
|
ARG BUILD_IMAGE
|
|
ARG KERNEL_VERSION
|
|
ARG PKG_HASH
|
|
|
|
FROM linuxkit/kernel:${KERNEL_VERSION}-${PKG_HASH} as ksrc
|
|
|
|
FROM ${BUILD_IMAGE} AS build
|
|
RUN apk add \
|
|
argp-standalone \
|
|
bash \
|
|
bc \
|
|
binutils-dev \
|
|
bison \
|
|
build-base \
|
|
diffutils \
|
|
flex \
|
|
git \
|
|
gmp-dev \
|
|
installkernel \
|
|
kmod \
|
|
elfutils-dev \
|
|
findutils \
|
|
libelf-static \
|
|
mpc1-dev \
|
|
mpfr-dev \
|
|
python3 \
|
|
python3-dev \
|
|
sed \
|
|
tar \
|
|
xz \
|
|
xz-dev \
|
|
zlib-dev \
|
|
zlib-static \
|
|
zstd \
|
|
zstd-static
|
|
|
|
COPY --from=ksrc /linux.tar.xz /kernel-headers.tar /
|
|
RUN tar xf linux.tar.xz && \
|
|
tar xf kernel-headers.tar
|
|
|
|
# download and build libtraceevent.a
|
|
|
|
WORKDIR /build
|
|
ENV LIBTRACE_COMMIT=libtraceevent-1.8.2
|
|
RUN git clone https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git && \
|
|
cd libtraceevent && \
|
|
git checkout $LIBTRACE_COMMIT
|
|
|
|
RUN make -C libtraceevent all install V=1
|
|
|
|
WORKDIR /linux
|
|
|
|
RUN mkdir -p /out && \
|
|
make -C tools/perf EXTRA_CFLAGS="-Wno-alloc-size -Wno-calloc-transposed-args" LDFLAGS=-static V=1 && \
|
|
strip tools/perf/perf && \
|
|
cp tools/perf/perf /out
|
|
|
|
FROM scratch
|
|
ENTRYPOINT []
|
|
CMD []
|
|
WORKDIR /
|
|
COPY --from=build /out/perf /usr/bin/perf
|