From patchwork Sun Nov 12 06:51:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Elliott Mitchell X-Patchwork-Id: 1863981 X-Patchwork-Delegate: ynezz@true.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=yqPgeir8; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4SVQmM6wwSz1yR8 for ; Wed, 15 Nov 2023 12:38:27 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:To:Subject:Date:From: References:In-Reply-To:Message-Id:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ts1HWL2sASzGP/PErJQ1ACxFtCIxXLhG9kqNnS6cGGs=; b=yqPgeir82WiKgE +y8b6MJlfhL5iWqAg38PID6X4JqygjVk3kzyKFYuz3NnZ7BiT36J+IW+9nCzu0Kbw/5jWZcoQ01RE hAFN3ToL1hpFyLRSNa8iIILOcdLuFD3uRVByPvuPkZy2Ndb5l8AWHqtcep/MYKexMvtfsFf0pnTfk ShXfNrmNWXgmXTIE/4jwp13O3ZpQxYBIQD6Vi8m656ACFDx2pJqyRYsEiH4z/r0/SYIZTNkjajDm4 OJ7ZTSoeQL1en2rhf51zccmcp7Fkv6ikIHgcsyPjHmveLXOsL3HKPOGV/qUKyZDaF/jsTz4wajrmh OyW3w4PwwSvPq1k8EDNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r34pt-00HATg-1p; Wed, 15 Nov 2023 01:36:57 +0000 Received: from mailhost.m5p.com ([74.104.188.4]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r34po-00HARx-2T for openwrt-devel@lists.openwrt.org; Wed, 15 Nov 2023 01:36:55 +0000 Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7]) by mailhost.m5p.com (8.17.1/8.15.2) with ESMTPS id 3AF1aiKJ088922 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO) for ; Tue, 14 Nov 2023 20:36:50 -0500 (EST) (envelope-from ehem@m5p.com) Received: (from ehem@localhost) by m5p.com (8.17.1/8.15.2/Submit) id 3AF1aidd088921; Tue, 14 Nov 2023 17:36:44 -0800 (PST) (envelope-from ehem) Message-Id: <3d3eb1a2177de0d72504978746e921341dab5794.1700010294.git.ehem+openwrt@m5p.com> In-Reply-To: References: From: Elliott Mitchell Date: Sat, 11 Nov 2023 22:51:08 -0800 Subject: [PATCH 16/20] [WIP] build: point kernel build tasks at $(LINUX_OBJ_DIR) To: openwrt-devel@lists.openwrt.org X-Spam-Status: No, score=0.8 required=10.0 tests=KHOP_HELO_FCRDNS, UPPERCASE_50_75 autolearn=no autolearn_force=no version=4.0.0 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231114_173653_077341_BE03BFEE X-CRM114-Status: GOOD ( 10.27 ) X-Spam-Score: 0.8 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: This points uses of .config, .modules, and vmlinux at the correct place. This is one portion of the source/build split. Signed-off-by: Elliott Mitchell --- Note for reviewers. It is easy to miss the `mkdir` added to Kernel/Configure/Default. That was needed since the directory might not have been [...] Content analysis details: (0.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.8 UPPERCASE_50_75 message body is 50-75% uppercase X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org This points uses of .config, .modules, and vmlinux at the correct place. This is one portion of the source/build split. Signed-off-by: Elliott Mitchell --- Note for reviewers. It is easy to miss the `mkdir` added to Kernel/Configure/Default. That was needed since the directory might not have been created (bugfix while testing). --- include/kernel-build.mk | 36 ++++----- include/kernel-defaults.mk | 101 ++++++++++++------------ include/kernel.mk | 8 +- package/devel/kselftests-bpf/Makefile | 2 +- package/kernel/linux/Makefile | 6 +- package/network/utils/iptables/Makefile | 4 +- 6 files changed, 79 insertions(+), 78 deletions(-) diff --git a/include/kernel-build.mk b/include/kernel-build.mk index 19284caa94..eb770ad5f4 100644 --- a/include/kernel-build.mk +++ b/include/kernel-build.mk @@ -11,7 +11,7 @@ endif KERNEL_FILE_DEPENDS=$(GENERIC_BACKPORT_DIR) $(GENERIC_PATCH_DIR) $(GENERIC_HACK_DIR) $(PATCH_DIR) $(GENERIC_FILES_DIR) $(FILES_DIR) STAMP_PREPARED=$(LINUX_SRC_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call $(if $(CONFIG_AUTOREMOVE),find_md5_reproducible,find_md5),$(KERNEL_FILE_DEPENDS),))) -STAMP_CONFIGURED:=$(LINUX_DIR)/.configured +STAMP_CONFIGURED:=$(LINUX_OBJ_DIR)/.configured include $(INCLUDE_DIR)/download.mk include $(INCLUDE_DIR)/quilt.mk include $(INCLUDE_DIR)/kernel-defaults.mk @@ -61,7 +61,7 @@ ifdef CONFIG_COLLECT_KERNEL_DEBUG define Kernel/CollectDebug rm -rf $(KERNEL_BUILD_DIR)/debug mkdir -p $(KERNEL_BUILD_DIR)/debug/modules - $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/debug/ + $(CP) $(LINUX_OBJ_DIR)/vmlinux $(KERNEL_BUILD_DIR)/debug/ -$(CP) \ $(STAGING_DIR_ROOT)/lib/modules/$(LINUX_VERSION)/* \ $(KERNEL_BUILD_DIR)/debug/modules/ @@ -99,11 +99,11 @@ define BuildKernel rm -f $(KERNEL_BUILD_DIR)/symtab.h touch $(KERNEL_BUILD_DIR)/symtab.h +$(KERNEL_MAKE) vmlinux - find $(LINUX_DIR) $(STAGING_DIR_ROOT)/lib/modules -name \*.ko | \ + find $(LINUX_OBJ_DIR) $(STAGING_DIR_ROOT)/lib/modules -name \*.ko | \ xargs $(TARGET_CROSS)nm | \ awk '$$$$1 == "U" { print $$$$2 } ' | \ sort -u > $(KERNEL_BUILD_DIR)/mod_symtab.txt - $(TARGET_CROSS)nm -n $(LINUX_DIR)/vmlinux.o | awk '/^[0-9a-f]+ [rR] __ksymtab_/ {print substr($$$$3,11)}' > $(KERNEL_BUILD_DIR)/kernel_symtab.txt + $(TARGET_CROSS)nm -n $(LINUX_OBJ_DIR)/vmlinux.o | awk '/^[0-9a-f]+ [rR] __ksymtab_/ {print substr($$$$3,11)}' > $(KERNEL_BUILD_DIR)/kernel_symtab.txt grep -Ff $(KERNEL_BUILD_DIR)/mod_symtab.txt $(KERNEL_BUILD_DIR)/kernel_symtab.txt > $(KERNEL_BUILD_DIR)/sym_include.txt grep -Fvf $(KERNEL_BUILD_DIR)/mod_symtab.txt $(KERNEL_BUILD_DIR)/kernel_symtab.txt > $(KERNEL_BUILD_DIR)/sym_exclude.txt ( \ @@ -129,18 +129,18 @@ define BuildKernel $(Kernel/Configure) touch $$@ - $(LINUX_DIR)/.modules: export STAGING_PREFIX=$$(STAGING_DIR_HOST) - $(LINUX_DIR)/.modules: export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig - $(LINUX_DIR)/.modules: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig - $(LINUX_DIR)/.modules: export FAIL_ON_UNCONFIGURED=1 - $(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE + $(LINUX_OBJ_DIR)/.modules: export STAGING_PREFIX=$$(STAGING_DIR_HOST) + $(LINUX_OBJ_DIR)/.modules: export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig + $(LINUX_OBJ_DIR)/.modules: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig + $(LINUX_OBJ_DIR)/.modules: export FAIL_ON_UNCONFIGURED=1 + $(LINUX_OBJ_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_OBJ_DIR)/.config FORCE $(Kernel/CompileModules) touch $$@ - $(LINUX_DIR)/.image: export STAGING_PREFIX=$$(STAGING_DIR_HOST) - $(LINUX_DIR)/.image: export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig - $(LINUX_DIR)/.image: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig - $(LINUX_DIR)/.image: $(STAMP_CONFIGURED) $(if $(CONFIG_STRIP_KERNEL_EXPORTS),$(KERNEL_BUILD_DIR)/symtab.h) FORCE + $(LINUX_OBJ_DIR)/.image: export STAGING_PREFIX=$$(STAGING_DIR_HOST) + $(LINUX_OBJ_DIR)/.image: export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig + $(LINUX_OBJ_DIR)/.image: export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig + $(LINUX_OBJ_DIR)/.image: $(STAMP_CONFIGURED) $(if $(CONFIG_STRIP_KERNEL_EXPORTS),$(KERNEL_BUILD_DIR)/symtab.h) FORCE $(Kernel/CompileImage) $(Kernel/CollectDebug) touch $$@ @@ -153,13 +153,13 @@ define BuildKernel download: $(if $(LINUX_SITE),$(DL_DIR)/$(LINUX_SOURCE)) prepare: $(STAMP_PREPARED) - compile: $(LINUX_DIR)/.modules + compile: $(LINUX_OBJ_DIR)/.modules $(MAKE) -C image compile TARGET_BUILD= oldconfig menuconfig nconfig xconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE - rm -f $(LINUX_DIR)/.config.prev + rm -f $(LINUX_OBJ_DIR)/.config.prev rm -f $(STAMP_CONFIGURED) - $(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config + $(LINUX_RECONF_CMD) > $(LINUX_OBJ_DIR)/.config $(_SINGLE)$(KERNEL_MAKE) \ $(if $(findstring Darwin,$(HOST_OS)), \ HOSTLDLIBS_mconf="-L$(STAGING_DIR_HOST)/lib -lncurses" \ @@ -167,9 +167,9 @@ define BuildKernel ) \ YACC=$(STAGING_DIR_HOST)/bin/bison \ $$@ - $(call LINUX_RECONF_DIFF,$(LINUX_DIR)/.config) > $(LINUX_RECONFIG_TARGET) + $(call LINUX_RECONF_DIFF,$(LINUX_OBJ_DIR)/.config) > $(LINUX_RECONFIG_TARGET) - install: $(LINUX_DIR)/.image + install: $(LINUX_OBJ_DIR)/.image +$(MAKE) -C image compile install TARGET_BUILD= clean: FORCE diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index b7a3f484e1..178d4c0a5d 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -44,75 +44,76 @@ endif ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE),y) define Kernel/SetInitramfs/PreConfigure - grep -v -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config + grep -v -e CONFIG_BLK_DEV_INITRD $(LINUX_OBJ_DIR)/.config.old > $(LINUX_OBJ_DIR)/.config + echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_OBJ_DIR)/.config + echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_OBJ_DIR)/.config endef else ifeq ($(strip $(CONFIG_EXTERNAL_CPIO)),"") define Kernel/SetInitramfs/PreConfigure - grep -v -e INITRAMFS -e CONFIG_RD_ -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $(LINUX_DIR)/.config + grep -v -e INITRAMFS -e CONFIG_RD_ -e CONFIG_BLK_DEV_INITRD $(LINUX_OBJ_DIR)/.config.old > $(LINUX_OBJ_DIR)/.config + echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_OBJ_DIR)/.config + echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $(LINUX_OBJ_DIR)/.config endef else define Kernel/SetInitramfs/PreConfigure - grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))"' >> $(LINUX_DIR)/.config + grep -v INITRAMFS $(LINUX_OBJ_DIR)/.config.old > $(LINUX_OBJ_DIR)/.config + echo 'CONFIG_INITRAMFS_SOURCE="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))"' >> $(LINUX_OBJ_DIR)/.config endef endif endif define Kernel/SetInitramfs - rm -f $(LINUX_DIR)/.config.prev - mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old + rm -f $(LINUX_OBJ_DIR)/.config.prev + mv $(LINUX_OBJ_DIR)/.config $(LINUX_OBJ_DIR)/.config.old $(call Kernel/SetInitramfs/PreConfigure) - echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> $(LINUX_DIR)/.config + echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> $(LINUX_OBJ_DIR)/.config ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE),y) - echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config - echo "$(if $(CONFIG_TARGET_INITRAMFS_FORCE),CONFIG_INITRAMFS_FORCE=y,# CONFIG_INITRAMFS_FORCE is not set)" >> $(LINUX_DIR)/.config + echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_OBJ_DIR)/.config + echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_OBJ_DIR)/.config + echo "$(if $(CONFIG_TARGET_INITRAMFS_FORCE),CONFIG_INITRAMFS_FORCE=y,# CONFIG_INITRAMFS_FORCE is not set)" >> $(LINUX_OBJ_DIR)/.config else - echo "# CONFIG_INITRAMFS_FORCE is not set" >> $(LINUX_DIR)/.config + echo "# CONFIG_INITRAMFS_FORCE is not set" >> $(LINUX_OBJ_DIR)/.config endif - echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),CONFIG_INITRAMFS_COMPRESSION_LZMA=y\nCONFIG_RD_LZMA=y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n# CONFIG_RD_LZMA is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),CONFIG_INITRAMFS_COMPRESSION_LZO=y\nCONFIG_RD_LZO=y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n# CONFIG_RD_LZO is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),CONFIG_INITRAMFS_COMPRESSION_XZ=y\nCONFIG_RD_XZ=y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n# CONFIG_RD_XZ is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4),CONFIG_INITRAMFS_COMPRESSION_LZ4=y\nCONFIG_RD_LZ4=y,# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set\n# CONFIG_RD_LZ4 is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),CONFIG_INITRAMFS_COMPRESSION_ZSTD=y\nCONFIG_RD_ZSTD=y,# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set\n# CONFIG_RD_ZSTD is not set)" >> $(LINUX_DIR)/.config + echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_OBJ_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_OBJ_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_OBJ_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),CONFIG_INITRAMFS_COMPRESSION_LZMA=y\nCONFIG_RD_LZMA=y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n# CONFIG_RD_LZMA is not set)" >> $(LINUX_OBJ_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),CONFIG_INITRAMFS_COMPRESSION_LZO=y\nCONFIG_RD_LZO=y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n# CONFIG_RD_LZO is not set)" >> $(LINUX_OBJ_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),CONFIG_INITRAMFS_COMPRESSION_XZ=y\nCONFIG_RD_XZ=y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n# CONFIG_RD_XZ is not set)" >> $(LINUX_OBJ_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4),CONFIG_INITRAMFS_COMPRESSION_LZ4=y\nCONFIG_RD_LZ4=y,# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set\n# CONFIG_RD_LZ4 is not set)" >> $(LINUX_OBJ_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),CONFIG_INITRAMFS_COMPRESSION_ZSTD=y\nCONFIG_RD_ZSTD=y,# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set\n# CONFIG_RD_ZSTD is not set)" >> $(LINUX_OBJ_DIR)/.config endef else endif define Kernel/SetNoInitramfs - mv $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.old - grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config.set - echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config.set - echo '# CONFIG_INITRAMFS_FORCE is not set' >> $(LINUX_DIR)/.config.set - echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> $(LINUX_DIR)/.config.set + mv $(LINUX_OBJ_DIR)/.config.set $(LINUX_OBJ_DIR)/.config.old + grep -v INITRAMFS $(LINUX_OBJ_DIR)/.config.old > $(LINUX_OBJ_DIR)/.config.set + echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_OBJ_DIR)/.config.set + echo '# CONFIG_INITRAMFS_FORCE is not set' >> $(LINUX_OBJ_DIR)/.config.set + echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> $(LINUX_OBJ_DIR)/.config.set endef define Kernel/Configure/Default - rm -f $(LINUX_DIR)/localversion - $(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target + rm -f $(LINUX_OBJ_DIR)/localversion + mkdir -p $(LINUX_OBJ_DIR) + $(LINUX_CONF_CMD) > $(LINUX_OBJ_DIR)/.config.target # copy CONFIG_KERNEL_* settings over to .config.target - awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $(TOPDIR)/.config >> $(LINUX_DIR)/.config.target - echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $(LINUX_DIR)/.config.target - echo "# CONFIG_KALLSYMS_ALL is not set" >> $(LINUX_DIR)/.config.target - echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> $(LINUX_DIR)/.config.target - $(SCRIPT_DIR)/package-metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config $(KERNEL_PATCHVER) > $(LINUX_DIR)/.config.override - $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config.set + awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $(TOPDIR)/.config >> $(LINUX_OBJ_DIR)/.config.target + echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $(LINUX_OBJ_DIR)/.config.target + echo "# CONFIG_KALLSYMS_ALL is not set" >> $(LINUX_OBJ_DIR)/.config.target + echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> $(LINUX_OBJ_DIR)/.config.target + $(SCRIPT_DIR)/package-metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config $(KERNEL_PATCHVER) > $(LINUX_OBJ_DIR)/.config.override + $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_OBJ_DIR)/.config.target /dev/null $(LINUX_OBJ_DIR)/.config.override > $(LINUX_OBJ_DIR)/.config.set $(call Kernel/SetNoInitramfs) rm -rf $(KERNEL_BUILD_DIR)/modules - cmp -s $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev || { \ - cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config; \ - cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev; \ + cmp -s $(LINUX_OBJ_DIR)/.config.set $(LINUX_OBJ_DIR)/.config.prev || { \ + cp $(LINUX_OBJ_DIR)/.config.set $(LINUX_OBJ_DIR)/.config; \ + cp $(LINUX_OBJ_DIR)/.config.set $(LINUX_OBJ_DIR)/.config.prev; \ } $(_SINGLE) [ -d $(LINUX_OBJ_DIR)/user_headers ] || $(KERNEL_MAKE) $(if $(findstring uml,$(BOARD)),ARCH=$(ARCH)) INSTALL_HDR_PATH=$(LINUX_OBJ_DIR)/user_headers headers_install - grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | $(MKHASH) md5 > $(LINUX_DIR)/.vermagic + grep '=[ym]' $(LINUX_OBJ_DIR)/.config.set | LC_ALL=C sort | $(MKHASH) md5 > $(LINUX_OBJ_DIR)/.vermagic endef define Kernel/Configure/Initramfs @@ -120,12 +121,12 @@ define Kernel/Configure/Initramfs endef define Kernel/CompileModules/Default - rm -f $(LINUX_DIR)/vmlinux $(LINUX_DIR)/System.map + rm -f $(LINUX_OBJ_DIR)/vmlinux $(LINUX_OBJ_DIR)/System.map +$(KERNEL_MAKE) $(if $(KERNELNAME),$(KERNELNAME),all) modules # If .config did not change, use the previous timestamp to avoid package rebuilds - cmp -s $(LINUX_DIR)/.config $(LINUX_DIR)/.config.modules.save && \ - mv $(LINUX_DIR)/.config.modules.save $(LINUX_DIR)/.config; \ - $(CP) $(LINUX_DIR)/.config $(LINUX_DIR)/.config.modules.save + cmp -s $(LINUX_OBJ_DIR)/.config $(LINUX_OBJ_DIR)/.config.modules.save && \ + mv $(LINUX_OBJ_DIR)/.config.modules.save $(LINUX_OBJ_DIR)/.config; \ + $(CP) $(LINUX_OBJ_DIR)/.config $(LINUX_OBJ_DIR)/.config.modules.save endef OBJCOPY_STRIP = -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id @@ -136,13 +137,13 @@ IMAGES_DIR:=../../x86/boot endif define Kernel/CopyImage - cmp -s $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug || { \ - $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1); \ - $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).elf; \ - $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug; \ + cmp -s $(LINUX_OBJ_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug || { \ + $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_OBJ_DIR)/vmlinux $(LINUX_KERNEL)$(1); \ + $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_OBJ_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).elf; \ + $(CP) $(LINUX_OBJ_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug; \ $(foreach k, \ $(if $(KERNEL_IMAGES),$(KERNEL_IMAGES),$(filter-out vmlinux dtbs,$(KERNELNAME))), \ - $(CP) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) $(KERNEL_BUILD_DIR)/$(k)$(1); \ + $(CP) $(LINUX_OBJ_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) $(KERNEL_BUILD_DIR)/$(k)$(1); \ ) \ } endef @@ -152,7 +153,7 @@ define Kernel/CompileImage/Default +$(KERNEL_MAKE) $(KERNEL_MAKEOPTS_IMAGE) $(if $(KERNELNAME),$(KERNELNAME),all) $(call Kernel/CopyImage) +$(KERNEL_MAKE) $(KERNEL_MAKEOPTS_IMAGE) modules - find $(LINUX_DIR) -name \*.ko -a -links 1 -print0 | xargs -0 -r cp -lf -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION) + find $(LINUX_OBJ_DIR) -name \*.ko -a -links 1 -print0 | xargs -0 -r cp -lf -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION) endef ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) diff --git a/include/kernel.mk b/include/kernel.mk index 8362fa768b..7f236ece45 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -50,7 +50,7 @@ else # Location of kernel object files LINUX_OBJ_DIR ?= $(LINUX_DIR) LINUX_UAPI_DIR=uapi/ - LINUX_VERMAGIC:=$(strip $(shell cat $(LINUX_DIR)/.vermagic 2>/dev/null)) + LINUX_VERMAGIC:=$(strip $(shell cat $(LINUX_OBJ_DIR)/.vermagic 2>/dev/null)) LINUX_VERMAGIC:=$(if $(LINUX_VERMAGIC),$(LINUX_VERMAGIC),unknown) LINUX_UNAME_VERSION:=$(KERNEL_BASE) @@ -194,11 +194,11 @@ define ModuleAutoLoad endef ifeq ($(DUMP)$(TARGET_BUILD),) - -include $(LINUX_DIR)/.config + -include $(LINUX_OBJ_DIR)/.config endif define KernelPackage/depends - $(STAMP_BUILT): $(LINUX_DIR)/.config + $(STAMP_BUILT): $(LINUX_OBJ_DIR)/.config define KernelPackage/depends endef endef @@ -248,7 +248,7 @@ $(call KernelPackage/$(1)/config) ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m y,$(foreach c,$(call version_filter,$(filter-out %=y %=n %=m,$(KCONFIG))),$($(c)))),.),) define Package/kmod-$(1)/install @for mod in $$(call version_filter,$$(FILES)); do \ - if grep -q "$$$$$$$${mod##$(LINUX_DIR)/}" "$(LINUX_DIR)/modules.builtin"; then \ + if grep -q "$$$$$$$${mod##$(LINUX_OBJ_DIR)/}" "$(LINUX_OBJ_DIR)/modules.builtin"; then \ echo "NOTICE: module '$$$$$$$$mod' is built-in."; \ elif [ -e $$$$$$$$mod ]; then \ mkdir -p $$(1)/$(MODULES_SUBDIR) ; \ diff --git a/package/devel/kselftests-bpf/Makefile b/package/devel/kselftests-bpf/Makefile index 0a5b874e04..bb34f0ff5f 100644 --- a/package/devel/kselftests-bpf/Makefile +++ b/package/devel/kselftests-bpf/Makefile @@ -43,7 +43,7 @@ MAKE_VARS = \ SAN_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \ LDLIBS="$(TARGET_LDFLAGS)" \ TOOLCHAIN_INCLUDE="$(TOOLCHAIN_INC_DIRS)" \ - VMLINUX_BTF="$(LINUX_DIR)/vmlinux" + VMLINUX_BTF="$(LINUX_OBJ_DIR)/vmlinux" MAKE_FLAGS = \ $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile index c88b5c1b31..49587611f0 100644 --- a/package/kernel/linux/Makefile +++ b/package/kernel/linux/Makefile @@ -26,8 +26,8 @@ export SHELL:=/bin/sh include $(INCLUDE_DIR)/package.mk ifeq ($(DUMP),) - STAMP_BUILT:=$(STAMP_BUILT)_$(shell $(SCRIPT_DIR)/kconfig.pl $(LINUX_DIR)/.config | $(MKHASH) md5) - -include $(LINUX_DIR)/.config + STAMP_BUILT:=$(STAMP_BUILT)_$(shell $(SCRIPT_DIR)/kconfig.pl $(LINUX_OBJ_DIR)/.config | $(MKHASH) md5) + -include $(LINUX_OBJ_DIR)/.config endif define Build/Prepare @@ -62,7 +62,7 @@ define Package/kernel/install endef define Package/kernel/extra_provides - sed -e 's,.*/,,' $(LINUX_DIR)/modules.builtin; + sed -e 's,.*/,,' $(LINUX_OBJ_DIR)/modules.builtin; endef $(eval $(if $(DUMP),,$(call BuildPackage,kernel))) diff --git a/package/network/utils/iptables/Makefile b/package/network/utils/iptables/Makefile index f9e8d619fa..f3477e8cac 100644 --- a/package/network/utils/iptables/Makefile +++ b/package/network/utils/iptables/Makefile @@ -27,9 +27,9 @@ PKG_CPE_ID:=cpe:/a:netfilter_core_team:iptables include $(INCLUDE_DIR)/package.mk ifeq ($(DUMP),) - -include $(LINUX_DIR)/.config + -include $(LINUX_OBJ_DIR)/.config include $(INCLUDE_DIR)/netfilter.mk - STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep 'NETFILTER' $(LINUX_DIR)/.config | $(MKHASH) md5) + STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep 'NETFILTER' $(LINUX_OBJ_DIR)/.config | $(MKHASH) md5) endif