DistroKit Mailinglist
 help / color / mirror / Atom feed
From: Robert Schwebel <r.schwebel@pengutronix.de>
To: Michael Olbrich <m.olbrich@pengutronix.de>
Cc: distrokit@pengutronix.de
Subject: Re: [DistroKit] [PATCH 1/2] kernel: import rule from ptxdist-2025.11.0
Date: Thu, 11 Dec 2025 10:59:22 +0100	[thread overview]
Message-ID: <aTqV-gI3uQA0PIwK@pengutronix.de> (raw)
In-Reply-To: <20251211093545.1050096-1-m.olbrich@pengutronix.de>

Applied to next.

On Thu, Dec 11, 2025 at 10:35:44AM +0100, Michael Olbrich wrote:
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> ---
>  rules/kernel.make | 379 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 379 insertions(+)
>  create mode 100644 rules/kernel.make
> 
> diff --git a/rules/kernel.make b/rules/kernel.make
> new file mode 100644
> index 000000000000..9cdc95a91b8b
> --- /dev/null
> +++ b/rules/kernel.make
> @@ -0,0 +1,379 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2002-2009 by Pengutronix e.K., Hildesheim, Germany
> +#               2010 by Marc Kleine-Budde <mkl@pengutronix.de>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_KERNEL) += kernel
> +
> +#
> +# Paths and names
> +#
> +KERNEL			:= linux-$(KERNEL_VERSION)
> +KERNEL_MD5		:= $(call ptx/config-md5, PTXCONF_KERNEL)
> +ifneq ($(KERNEL_NEEDS_GIT_URL),y)
> +KERNEL_SUFFIX		:= tar.xz
> +KERNEL_URL		:= $(call kernel-url, KERNEL)
> +else
> +KERNEL_SUFFIX		:= tar.gz
> +KERNEL_URL		:= https://git.kernel.org/torvalds/t/$(KERNEL).$(KERNEL_SUFFIX)
> +endif
> +KERNEL_DIR		:= $(BUILDDIR)/$(KERNEL)
> +KERNEL_BUILD_DIR	:= $(KERNEL_DIR)-build
> +KERNEL_CONFIG		:= $(call ptx/in-platformconfigdir, $(call remove_quotes, $(PTXCONF_KERNEL_CONFIG)))
> +KERNEL_DTS_PATH		:= $(call remove_quotes,$(PTXCONF_KERNEL_DTS_PATH))
> +KERNEL_DTS		:= $(call remove_quotes,$(PTXCONF_KERNEL_DTS))
> +KERNEL_DTSO_PATH	:= $(call remove_quotes,$(PTXCONF_KERNEL_DTSO_PATH))
> +KERNEL_DTSO		:= $(call remove_quotes,$(PTXCONF_KERNEL_DTSO))
> +KERNEL_DTB_FILES	:= $(addsuffix .dtb,$(basename $(notdir $(KERNEL_DTS))))
> +KERNEL_DTBO_FILES	:= $(addsuffix .dtbo,$(basename $(notdir $(KERNEL_DTSO))))
> +KERNEL_DTBO_DIR		:= /boot/overlays
> +KERNEL_LICENSE		:= GPL-2.0-only
> +KERNEL_SOURCE		:= $(SRCDIR)/$(KERNEL).$(KERNEL_SUFFIX)
> +KERNEL_DEVPKG		:= NO
> +KERNEL_BUILD_OOT	:= KEEP
> +KERNEL_CVE_PRODUCT	:= linux:linux_kernel
> +
> +# track changes to devices-trees in the BSP
> +$(call world/dts-cfghash-file, KERNEL)
> +
> +# in case we migrate some old syntax
> +ifneq ($(filter /%,$(KERNEL_DTS)),)
> +$(call ptx/error, the device trees in PTXCONF_KERNEL_DTS must be specified without an)
> +$(call ptx/error, absolute path. Use PTXCONF_KERNEL_DTS_PATH to provide a list of direcories)
> +$(call ptx/error, that will be searched.)
> +endif
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +# use CONFIG_CC_STACKPROTECTOR if available. The rest makes no sense for the kernel
> +KERNEL_WRAPPER_BLACKLIST := \
> +	$(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
> +
> +# Note: for some reason, the error is not visible without the dummy '$(shell :)'
> +# when running 'ptxdist -j -q go'.
> +define kernel/deprecated
> +$(if $(strip \
> +$(filter $(STATEDIR)/%, \
> +$(filter-out $(STATEDIR)/kernel.%,$@)) \
> +),$(shell :)$(error $(notdir $@): \
> +	use KERNEL_MODULE_OPT instead of $(1) for kernel module packages))
> +endef
> +
> +# check for old kernel modules rules
> +KERNEL_MAKEVARS = $(call kernel/deprecated, KERNEL_MAKEVARS)
> +
> +# like kernel-opts but with different CROSS_COMPILE=
> +KERNEL_BASE_OPT		= \
> +	$(call kernel-opts, KERNEL,$(KERNEL_CROSS_COMPILE)) \
> +	$(call remove_quotes,$(PTXCONF_KERNEL_EXTRA_MAKEVARS))
> +
> +# Intermediate option. This will be used by kernel module packages.
> +KERNEL_MODULE_OPT	= \
> +	-C $(KERNEL_DIR) \
> +	O=$(KERNEL_BUILD_DIR) \
> +	$(KERNEL_BASE_OPT)
> +
> +KERNEL_SHARED_OPT	= \
> +	$(KERNEL_MODULE_OPT) \
> +	PAHOLE=false
> +
> +ifndef PTXCONF_KERNEL_GCC_PLUGINS
> +# no gcc plugins; avoid config changes depending on the host compiler
> +KERNEL_SHARED_OPT	+= \
> +	HOSTCXX="$(HOSTCXX) -DGENERATOR_FILE" \
> +	HOSTCC="$(HOSTCC) -DGENERATOR_FILE"
> +KERNEL_CONF_ENV		:= \
> +	PTXDIST_NO_GCC_PLUGINS=1
> +KERNEL_MAKE_ENV		:= \
> +	PTXDIST_NO_GCC_PLUGINS=1
> +endif
> +
> +ifneq ($(PTXCONF_KERNEL_CODE_SIGNING)$(PTXCONF_KERNEL_MODULES_SIGN),)
> +KERNEL_MAKE_ENV		+= \
> +	$(CODE_SIGNING_ENV)
> +endif
> +
> +KERNEL_CONF_TOOL	:= kconfig
> +KERNEL_CONF_OPT		= \
> +	$(KERNEL_SHARED_OPT)
> +
> +ifdef PTXCONF_KERNEL_CONFIG_BASE_VERSION
> +# force using KERNEL_VERSION in the kernelconfig
> +KERNEL_CONF_OPT		+= \
> +	KERNELVERSION=$(KERNEL_VERSION)
> +endif
> +
> +#
> +# support the different kernel image formats
> +#
> +KERNEL_IMAGE		:= $(call remove_quotes, $(PTXCONF_KERNEL_IMAGE))
> +
> +# these are sane defaults
> +KERNEL_IMAGE_PATH_y	:= $(KERNEL_BUILD_DIR)/arch/$(GENERIC_KERNEL_ARCH)/boot/$(KERNEL_IMAGE)
> +
> +# vmlinux and vmlinuz are special
> +KERNEL_IMAGE_PATH_$(PTXCONF_KERNEL_IMAGE_VMLINUX) := $(KERNEL_BUILD_DIR)/vmlinux
> +KERNEL_IMAGE_PATH_$(PTXCONF_KERNEL_IMAGE_VMLINUZ) := $(KERNEL_BUILD_DIR)/vmlinuz
> +# avr32 is also special
> +KERNEL_IMAGE_PATH_$(PTXCONF_ARCH_AVR32) := $(KERNEL_BUILD_DIR)/arch/$(GENERIC_KERNEL_ARCH)/boot/images/$(KERNEL_IMAGE)
> +
> +
> +ifdef PTXCONF_KERNEL
> +$(KERNEL_CONFIG):
> +	@echo
> +	@echo "*************************************************************************"
> +	@echo "**** Please generate a kernelconfig with 'ptxdist menuconfig kernel' ****"
> +	@echo "*************************************************************************"
> +	@echo
> +	@echo
> +	@exit 1
> +endif
> +
> +
> +#
> +# when compiling the rootfs into the kernel, we just include an empty
> +# file for now. the rootfs isn't build yet.
> +#
> +KERNEL_INITRAMFS_SOURCE_$(PTXCONF_IMAGE_KERNEL_INITRAMFS) += $(STATEDIR)/empty.cpio
> +
> +$(STATEDIR)/kernel.prepare:
> +	@$(call targetinfo)
> +#
> +# Make sure there is a non empty INITRAMFS_SOURCE in $(KERNEL_CONFIG), but
> +# not the real expanded path because it contains local workdir path which
> +# is not relevant to other developers.
> +#
> +ifdef KERNEL_INITRAMFS_SOURCE_y
> +	@sed -i -e 's,^CONFIG_INITRAMFS_SOURCE.*$$,CONFIG_INITRAMFS_SOURCE=\"# Automatically set by PTXDist\",g' \
> +		"$(KERNEL_CONFIG)"
> +endif
> +ifdef PTXCONF_KERNEL_IMAGE_SIMPLE
> +	cp $(PTXCONF_KERNEL_IMAGE_SIMPLE_DTS) \
> +		$(KERNEL_DIR)/arch/$(GENERIC_KERNEL_ARCH)/boot/dts/$(PTXCONF_KERNEL_IMAGE_SIMPLE_TARGET).dts
> +endif
> +
> +	@$(call world/prepare, KERNEL)
> +
> +#
> +# Use an existing dummy INITRAMFS_SOURCE for the first 'make' call. The
> +# kernel image will be rebuilt in the image-kernel package with the real
> +# initramfs.
> +#
> +ifdef KERNEL_INITRAMFS_SOURCE_y
> +	@touch "$(KERNEL_INITRAMFS_SOURCE_y)"
> +	@sed -i -e 's,^CONFIG_INITRAMFS_SOURCE.*$$,CONFIG_INITRAMFS_SOURCE=\"$(KERNEL_INITRAMFS_SOURCE_y)\",g' \
> +		"$(KERNEL_BUILD_DIR)/.config"
> +endif
> +ifdef PTXCONF_KERNEL_CODE_SIGNING
> +	if [ -n "`cs_get_ca kernel-trusted`" ]; then \
> +		sed -i -e "s'^\(CONFIG_SYSTEM_TRUSTED_KEYS\)=.*'\1=\"`cs_get_ca kernel-trusted`\"'" \
> +			"$(KERNEL_BUILD_DIR)/.config"; \
> +	fi
> +endif
> +ifdef PTXCONF_KERNEL_MODULES_SIGN
> +	sed -i -e "s'^\(CONFIG_MODULE_SIG_KEY\)=.*'\1=\"`cs_get_uri kernel-modules`\"'" \
> +		"$(KERNEL_BUILD_DIR)/.config"
> +endif
> +	@$(call touch)
> +
> +
> +# ----------------------------------------------------------------------------
> +# tags
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/kernel.tags:
> +	@$(call targetinfo)
> +	@$(MAKE) -C $(KERNEL_DIR) $(KERNEL_MAKE_OPT) tags TAGS cscope
> +
> +# ----------------------------------------------------------------------------
> +# Compile
> +# ----------------------------------------------------------------------------
> +
> +KERNEL_MAKE_OPT		= \
> +	$(call kernel/deprecated, KERNEL_MAKE_OPT) \
> +	$(KERNEL_SHARED_OPT) \
> +	$(KERNEL_IMAGE) \
> +	$(call ptx/ifdef, PTXCONF_KERNEL_MODULES,modules)
> +
> +KERNEL_TOOL_PERF_OPTS	:= \
> +	-C $(KERNEL_DIR)/tools/perf \
> +	O=$(KERNEL_BUILD_DIR)/tools/perf \
> +	$(KERNEL_BASE_OPT) \
> +	prefix=/usr \
> +	WERROR=0 \
> +	NO_LIBPERL=1 \
> +	NO_LIBPYTHON=1 \
> +	NO_DWARF= \
> +	NO_SLANG= \
> +	NO_GTK2=1 \
> +	NO_DEMANGLE= \
> +	NO_LIBELF= \
> +	NO_LIBUNWIND=1 \
> +	NO_BACKTRACE= \
> +	NO_LIBNUMA=1 \
> +	NO_LIBAUDIT=1 \
> +	NO_LIBBIONIC=1 \
> +	NO_LIBCRYPTO=1 \
> +	NO_LIBDW_DWARF_UNWIND= \
> +	NO_PERF_READ_VDSO32=1 \
> +	NO_PERF_READ_VDSOX32=1 \
> +	NO_ZLIB= \
> +	NO_LIBBABELTRACE=1 \
> +	NO_LZMA=1 \
> +	NO_LIBZSTD= \
> +	NO_AUXTRACE= \
> +	NO_LIBBPF=1 \
> +	NO_SDT=1 \
> +	NO_LIBCAP=1
> +
> +# manual make to handle CPPFLAGS and broken parallel building for some
> +# kernel versions
> +KERNEL_TOOL_IIO_OPTS	:= \
> +	PTXDIST_ICECC=$(PTXDIST_ICERUN) \
> +	CPPFLAGS="-D__EXPORTED_HEADERS__ -I$(KERNEL_DIR)/include/uapi -I$(KERNEL_DIR)/include" \
> +	-C $(KERNEL_DIR)/tools/iio \
> +	O=$(KERNEL_BUILD_DIR)/tools/iio \
> +	$(KERNEL_BASE_OPT) \
> +	$(PARALLELMFLAGS_BROKEN)
> +
> +$(STATEDIR)/kernel.compile:
> +	@$(call targetinfo)
> +	@rm -f \
> +		$(KERNEL_BUILD_DIR)/usr/initramfs_data.cpio.* \
> +		$(KERNEL_BUILD_DIR)/usr/.initramfs_data.cpio.*
> +	@$(call world/compile, KERNEL)
> +ifdef PTXCONF_KERNEL_TOOL_PERF
> +	@mkdir -p $(KERNEL_BUILD_DIR)/tools/perf
> +	@$(call compile, KERNEL, $(KERNEL_TOOL_PERF_OPTS))
> +endif
> +ifdef PTXCONF_KERNEL_TOOL_IIO
> +	@mkdir -p $(KERNEL_BUILD_DIR)/tools/iio
> +	@$(call world/execute, KERNEL, \
> +		$(MAKE) $(KERNEL_TOOL_IIO_OPTS))
> +endif
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Install
> +# ----------------------------------------------------------------------------
> +
> +KERNEL_INSTALL_OPT = \
> +	$(KERNEL_BASE_OPT) \
> +	modules_install
> +
> +$(STATEDIR)/kernel.install:
> +	@$(call targetinfo)
> +ifdef PTXCONF_KERNEL_MODULES_INSTALL
> +	@$(call world/install, KERNEL)
> +endif
> +	@$(call world/dtb, KERNEL)
> +	@$(call world/dtbo, KERNEL)
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +ifneq ($(KERNEL_DTB_FILES),)
> +$(addprefix $(IMAGEDIR)/,$(KERNEL_DTB_FILES)): $(STATEDIR)/kernel.targetinstall
> +endif
> +
> +$(STATEDIR)/kernel.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(foreach dtb, $(KERNEL_DTB_FILES), \
> +		$(call ptx/image-install, KERNEL, \
> +			$(KERNEL_PKGDIR)/boot/$(dtb), $(dtb))$(ptx/nl))
> +
> +ifdef PTXCONF_KERNEL_XPKG
> +	@$(call install_init,  kernel)
> +	@$(call install_fixup, kernel, PRIORITY,optional)
> +	@$(call install_fixup, kernel, SECTION,base)
> +	@$(call install_fixup, kernel, AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
> +	@$(call install_fixup, kernel, DESCRIPTION,missing)
> +
> +	@$(call install_copy, kernel, 0, 0, 0755, /boot);
> +
> +ifdef PTXCONF_KERNEL_INSTALL
> +	@$(call install_copy, kernel, 0, 0, 0644, $(KERNEL_IMAGE_PATH_y), /boot/$(KERNEL_IMAGE), n)
> +
> +	@$(foreach dtb, $(KERNEL_DTB_FILES), \
> +		$(call install_copy, kernel, 0, 0, 0644, -, \
> +			/boot/$(dtb), n)$(ptx/nl))
> +
> +	@$(foreach dtbo, $(KERNEL_DTBO_FILES), \
> +		$(call install_copy, kernel, 0, 0, 0644, -, \
> +			$(KERNEL_DTBO_DIR)/$(dtbo), n)$(ptx/nl))
> +endif
> +
> +# install the ELF kernel image for debugging purpose
> +ifdef PTXCONF_KERNEL_VMLINUX
> +	@$(call install_copy, kernel, 0, 0, 0644, $(KERNEL_BUILD_DIR)/vmlinux, /boot/vmlinux, n)
> +endif
> +
> +ifdef PTXCONF_KERNEL_TOOL_PERF
> +	@$(call install_copy, kernel, 0, 0, 0755, $(KERNEL_BUILD_DIR)/tools/perf/perf, \
> +		/usr/bin/perf)
> +endif
> +
> +ifdef PTXCONF_KERNEL_TOOL_IIO
> +	@$(call install_copy, kernel, 0, 0, 0755, $(wildcard $(KERNEL_BUILD_DIR)/tools/iio/*generic_buffer), \
> +		/usr/bin/iio_generic_buffer)
> +	@$(call install_copy, kernel, 0, 0, 0755, $(KERNEL_BUILD_DIR)/tools/iio/lsiio, \
> +		/usr/bin/lsiio)
> +	@$(call install_copy, kernel, 0, 0, 0755, $(KERNEL_BUILD_DIR)/tools/iio/iio_event_monitor, \
> +		/usr/bin/iio_event_monitor)
> +endif
> +
> +	@$(call install_finish, kernel)
> +endif
> +
> +	@$(call touch)
> +
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install-post
> +# ----------------------------------------------------------------------------
> +
> +ifdef PTXCONF_IMAGE_KERNEL_INSTALL_EARLY
> +$(STATEDIR)/kernel.targetinstall.post: $(IMAGEDIR)/linuximage
> +ifdef PTXCONF_IMAGE_KERNEL_LZOP
> +$(STATEDIR)/kernel.targetinstall.post: $(IMAGEDIR)/linuximage.lzo
> +endif
> +endif
> +
> +$(STATEDIR)/kernel.targetinstall.post:
> +	@$(call targetinfo)
> +
> +ifdef PTXCONF_KERNEL_MODULES_INSTALL
> +	@$(call install_init,  kernel-modules)
> +	@$(call install_fixup, kernel-modules, PRIORITY,optional)
> +	@$(call install_fixup, kernel-modules, SECTION,base)
> +	@$(call install_fixup, kernel-modules, AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
> +	@$(call install_fixup, kernel-modules, DESCRIPTION,missing)
> +
> +	@$(call install_glob, kernel-modules, 0, 0, -, /lib/modules, *.ko,, n)
> +	@$(call install_glob, kernel-modules, 0, 0, -, /lib/modules,, *.ko */build */source, n)
> +
> +	@$(call install_finish, kernel-modules)
> +endif
> +
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# oldconfig / menuconfig
> +# ----------------------------------------------------------------------------
> +
> +$(call ptx/kconfig-targets, kernel): $(STATEDIR)/kernel.extract
> +	@$(call world/kconfig, KERNEL, $(subst kernel_,,$@))
> +
> +# vim: syntax=make
> -- 
> 2.47.3
> 
> 
> 

-- 
Pengutronix e.K.                           | Dipl.-Ing. Robert Schwebel  |
Steuerwalder Str. 21                       | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-9    |



      parent reply	other threads:[~2025-12-11  9:59 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-11  9:35 Michael Olbrich
2025-12-11  9:35 ` [DistroKit] [PATCH 2/2] kernel: backport modules.builtin.modinfo permission fix Michael Olbrich
2025-12-11  9:59 ` Robert Schwebel [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aTqV-gI3uQA0PIwK@pengutronix.de \
    --to=r.schwebel@pengutronix.de \
    --cc=distrokit@pengutronix.de \
    --cc=m.olbrich@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox