prplos/include
Cedric CHEDALEUX 11a80414e5 build: exclude checksec report files from rebuild check
When rebuilding a package, OpenWRT build system uses a complex set of
routines to check weither it must rebuild the dependent packages or skip
them and only rebuild the package. This smartly optimizes the build
time.

To do so, each dependent package calls the macro Build/Autoclean
(defined in include/package.mk).

This macro calls twice the `rdep` macro (defined in include/depends.mk):

1. To check if a reconfiguration is needed:
* if one of its files have changed (handled by .deps_file hash)
* if timestamp of any of its files is newer than the stamp .configured_<hash>
When this check is done, a new stamp file ".configured_<hash>_check is
created. If a configuration should take place, the timestamp of the
stamp check file becomes newer than the .configured_<hash> file: it
triggers a new package reconfiguration.

2. To check if a rebuild is needed:
* if timestamp of any of its files is newer than the stamp .built
When this check is done, a new stamp file ".built_check is created. If a
rebuild should take place, the timestamp of the stamp check file becomes
newer than .built triggering anew package build.

The rdep check already excludes a set of files that are generated after
the .built stamp file (like ipkg*).

When the 'security' profiles is loaded,
CONFIG_JSON_CHECKSEC_MITIGATIONS_REPORT is set and make all
packages generate a checksec report in their package build di (e.g.
<pkg_build_dir>/CHECKSEC).

This folder and its children files are generated after the .built file.
On next build, OpenWRT detects that checksec reports are newer than
.built file and trigger a rebuild of that component. This should not be
the case since this is not a file generated by the package itself!

Let's exclude the files of the CHECKSEC folder from the build check
mechanism to avoid unecessary rebuilds.

References: PPW-1414

Signed-off-by: Cedric CHEDALEUX <cedric.chedaleux@orange.com>
2026-02-10 15:26:24 +00:00
..
overlay-feed BuildSystem: Use cached list of Makefile.append's during package processing 2025-11-16 15:54:49 +00:00
site build: remove ac_cv_header_netinet_sctp_h=no from pre-cached variables 2024-09-22 16:04:09 +02:00
autotools.mk include: autotools: do not symlink files in autoreconf 2024-08-29 20:04:02 +02:00
bpf.mk build: bpf: fix LLVM tool paths with host toolchain 2025-04-09 18:30:49 +02:00
cmake.mk include: cmake.mk: honor CONFIG_DEBUG 2024-11-26 12:23:06 +00:00
debug.mk
default-packages.mk imagebuilder: move handling of DEFAULT_PACKAGES into shareable place 2025-01-03 11:14:12 +01:00
depends.mk
device_table.txt
download.mk download: don't overwrite VERSION variable 2024-04-29 08:39:25 +02:00
feeds.mk build: Unconditionally append kmod feed for BuildBot 2024-12-03 12:41:08 +01:00
hardened-ld-pie.specs
hardening.mk build: add option for building with stack-protector-all 2024-01-19 21:27:14 +01:00
host-build.mk build: add support for host building in a subdirectory 2024-07-27 20:32:20 +02:00
image-commands.mk ramips: move zyimage creation to include/image-commands.mk 2025-02-26 23:32:40 +01:00
image.mk build: add support for checksec.sh based mitigation reports 2025-07-31 15:20:37 +00:00
kernel-build.mk kernel-build.mk: Fix multi-core build warning. 2024-10-06 13:49:39 +02:00
kernel-defaults.mk target: don't use GENERIC_PLATFORM_DIR for generic other-files 2025-07-31 15:27:41 +00:00
kernel-version.mk kernel: move kernel version files to linux/generic directory 2025-07-31 15:27:30 +00:00
kernel.mk loongarch64: new target 2024-05-04 14:14:16 +08:00
logo.png
logo.svg
meson.mk include: meson.mk: honor CONFIG_DEBUG 2024-11-26 12:23:06 +00:00
netfilter.mk iptables: update to 1.8.10 2024-10-22 00:52:03 +02:00
nls.mk
openssl-module.mk
optee-os.mk optee-os.mk: override default PATH to not use hostpkg python 2025-03-17 16:21:23 +01:00
package-bin.mk
package-defaults.mk build: add support for PKG_SUBDIRS variable 2024-07-08 08:49:42 +02:00
package-dumpinfo.mk build: remove duplicate MAINTAINER from package-dumpinfo.mk 2024-05-07 22:24:10 +02:00
package-pack.mk build: add support for checksec.sh based mitigation reports 2025-07-31 15:20:37 +00:00
package-seccomp.mk
package.mk build: exclude checksec report files from rebuild check 2026-02-10 15:26:24 +00:00
prereq-build.mk prereq-build: limit python distutils check to <v3.12 2024-10-16 22:36:43 +02:00
prereq.mk
quilt.mk quilt.mk: don't error on refresh/update if patches doesn't exist 2023-10-06 21:59:29 +02:00
rootfs.mk imagebuilder: complete support for local signing keys 2024-10-29 00:07:52 +01:00
scan.awk BuildSystem: Add <package>/Makefile.append files in all active feeds as dependency for <package>/Makefile 2025-09-15 13:46:17 +03:00
scan.mk Buildsystem: Invalidate OpenWrt package information when some of SCAN_DEPS deleted 2025-09-15 13:46:17 +03:00
shell.sh
subdir.mk kernel-build.mk: add support for compiling only DTS 2024-02-08 19:57:28 +01:00
target.mk target: fix kernel_menuconfig with external feed overwriting generic 2025-07-31 15:29:47 +00:00
toolchain-build.mk
toplevel.mk build: remove targetinfo invalidation based on .config 2025-01-03 11:16:17 +01:00
trusted-firmware-a.mk include/trusted-firmware-a.mk: support LTS releases 2025-06-16 15:35:49 +02:00
u-boot.mk u-boot.mk: pass CROSS_COMPILE during config 2024-09-02 12:42:05 +02:00
uclibc++.mk
unpack.mk
verbose.mk verbose.mk: fallback to standard file descriptors 2024-01-05 16:25:14 +01:00
version.mk version.mk: introduce prplOS Git based versioning 2025-07-31 15:18:08 +00:00