@@ -104,10 +104,13 @@ LINUX_KERNEL_VERSIONS := 4.14.309 \
104104 6.1.137 \
105105 6.6.89
106106
107- LINUX_HEADER_X86_64_TEMPLATE := linux-headers-x86_64-%.tar.gz
108- LINUX_HEADER_ARM64_TEMPLATE := linux-headers-arm64-%.tar.gz
109- LINUX_HEADER_X86_64_TARGETS = $(addprefix $(LINUX_HEADER_ASSETS_BUILD_DIR ) /, $(patsubst % ,$(LINUX_HEADER_X86_64_TEMPLATE ) , $(LINUX_KERNEL_VERSIONS ) ) )
110- LINUX_HEADER_ARM64_TARGETS = $(addprefix $(LINUX_HEADER_ASSETS_BUILD_DIR ) /, $(patsubst % ,$(LINUX_HEADER_ARM64_TEMPLATE ) , $(LINUX_KERNEL_VERSIONS ) ) )
107+ LINUX_HEADER_TEMPLATE := linux-headers-%.tar.gz
108+ LINUX_HEADER_X86_64_TARGETS = $(addprefix $(LINUX_HEADER_ASSETS_BUILD_DIR ) /, \
109+ $(patsubst % ,$(subst x86_64,% ,$(LINUX_HEADER_TEMPLATE ) ) , $(addprefix x86_64-,$(LINUX_KERNEL_VERSIONS ) ) ) )
110+
111+ LINUX_HEADER_ARM64_TARGETS = $(addprefix $(LINUX_HEADER_ASSETS_BUILD_DIR ) /, \
112+ $(patsubst % ,$(subst arm64,% ,$(LINUX_HEADER_TEMPLATE ) ) , $(addprefix arm64-,$(LINUX_KERNEL_VERSIONS ) ) ) )
113+
111114LINUX_HEADERS_X86_64_MERGED_FILE := $(LINUX_HEADER_BUILD_DIR ) /linux-headers-merged-x86_64-$(LINUX_HEADERS_REV ) .tar.gz
112115LINUX_HEADERS_ARM64_MERGED_FILE := $(LINUX_HEADER_BUILD_DIR ) /linux-headers-merged-arm64-$(LINUX_HEADERS_REV ) .tar.gz
113116LINUX_HEADERS_GS_PATH := gs://pixie-dev-public/linux-headers/$(LINUX_HEADERS_REV )
@@ -208,46 +211,32 @@ upload_graalvm_archive: build_graalvm_archive_image
208211# #############################################
209212LINUX_HEADERS_BASE_PRE_v6_3 := ubuntu:18.04@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98
210213LINUX_HEADERS_BASE_POST_v6_3 := ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214
211- $(LINUX_HEADER_ASSETS_BUILD_DIR ) /linux-headers-x86_64- % .tar.gz : linux_headers_image/Dockerfile linux_headers_image/x86_64_config
214+ $(LINUX_HEADER_ASSETS_BUILD_DIR ) /linux-headers-% .tar.gz : linux_headers_image/Dockerfile
212215ifndef LINUX_HEADERS_REV
213216 $(error set LINUX_HEADERS_REV to a valid value)
214217endif
215218 @mkdir -p $(@D)
216219 # Linux 6.3 and later has differences in the build process.
217- # We need to use a different Dockerfile for these versions.
218- KERN_MAJ=$$(echo $* | cut -d. -f1); \
219- KERN_MIN=$$(echo $* | cut -d. -f2); \
220+ # We need to use a different base image for these versions.
221+ ARCH=$$(echo $* | cut -d- -f1); \
222+ KVER=$$(echo $* | cut -d- -f2-); \
223+ KERN_MAJ=$$(echo $$KVER | cut -d. -f1); \
224+ KERN_MIN=$$(echo $$KVER | cut -d. -f2); \
220225 BASE_IMAGE=$$(echo $(LINUX_HEADERS_BASE_POST_v6_3)); \
221226 if [ $${KERN_MAJ} -lt 6 ] || { [ $${KERN_MAJ} -le 6 ] && [ $${KERN_MIN} -lt 3 ]; }; then \
222227 BASE_IMAGE=$$(echo $(LINUX_HEADERS_BASE_PRE_v6_3)); \
223228 fi; \
224- linux_headers_image_tag="gcr.io/pixie-oss/pixie-dev-public:$*-$(LINUX_HEADERS_REV)"; \
225- $(DOCKER) build --build-arg KERN_VERSION=$* \
226- --build-arg ARCH=x86_64 linux_headers_image \
227- --build-arg BASE_IMAGE=$${BASE_IMAGE} \
228- -t "$${linux_headers_image_tag}" && \
229- $(DOCKER) run --rm -v $(PWD)/$(LINUX_HEADER_ASSETS_BUILD_DIR):/output "$${linux_headers_image_tag}"
230-
231- $(LINUX_HEADER_ASSETS_BUILD_DIR ) /linux-headers-arm64-% .tar.gz : linux_headers_image/Dockerfile linux_headers_image/arm64_config
232- ifndef LINUX_HEADERS_REV
233- $(error set LINUX_HEADERS_REV to a valid value)
234- endif
235- @mkdir -p $(@D)
236- # Linux 6.3 and later has differences in the build process.
237- # We need to use a different Dockerfile for these versions.
238- KERN_MAJ=$$(echo $* | cut -d. -f1); \
239- KERN_MIN=$$(echo $* | cut -d. -f2); \
240- HEADERS_DOCKERFILE_SUFFIX=""; \
241- if [ $${KERN_MAJ} -lt 6 ] || { [ $${KERN_MAJ} -le 6 ] && [ $${KERN_MIN} -lt 3 ]; }; then \
242- HEADERS_DOCKERFILE_SUFFIX=".bionic"; \
229+ CONFIG_FILE=$$(echo linux_headers_image/"$$ARCH"_config); \
230+ if [ ! -f $$CONFIG_FILE ]; then \
231+ echo "Unsupported ARCH=$$ARCH. Missing $$CONFIG_FILE"; exit 1; \
243232 fi; \
244- linux_headers_image_tag="gcr.io/pixie-oss/pixie-dev-public:$* -$(LINUX_HEADERS_REV)"; \
245- $(DOCKER) build --build-arg KERN_VERSION=$* \
246- --build-arg ARCH=arm64 \
247- --build-arg CROSS_COMPILE=aarch64-linux-gnu- \
248- -f linux_headers_image/Dockerfile$${HEADERS_DOCKERFILE_SUFFIX} \
249- linux_headers_image -t "$${linux_headers_image_tag}" && \
250- $(DOCKER) run --rm -v $(PWD)/$(LINUX_HEADER_ASSETS_BUILD_DIR):/output "$${linux_headers_image_tag}"
233+ linux_headers_image_tag="gcr.io/pixie-oss/pixie-dev-public:$$KVER -$(LINUX_HEADERS_REV)"; \
234+ $(DOCKER) build --build-arg BASE_IMAGE=$${BASE_IMAGE} linux_headers_image \
235+ -t "$${linux_headers_image_tag}" && \
236+ $(DOCKER) run --rm --env ARCH=$$ARCH \
237+ --env KERN_VERSION=$$KVER \
238+ $$( [ "$$ARCH" = "arm64" ] && echo "--env CROSS_COMPILE=aarch64-linux-gnu-" ) \
239+ -v $(PWD)/$(LINUX_HEADER_ASSETS_BUILD_DIR):/output "$${linux_headers_image_tag}"
251240
252241$(LINUX_HEADERS_X86_64_MERGED_FILE ) : $(LINUX_HEADER_X86_64_TARGETS )
253242 tar -czf $@ -C $(LINUX_HEADER_ASSETS_BUILD_DIR ) $(^F )
0 commit comments