From: Ahmad Fatoum <a.fat...@pengutronix.de> A key aspect of security policies is the enforcement of a policy to be complete with no implicit defaults. To make this easier to use, the security_*config targets directly manipulate the specified KPOLICY or all known policies if none were specified.
This is at odds with build systems that assume an immutable source tree and prefer that changes to files within purview of the build system are only done explicitly by the user. For that purpose, add an optional KPOLICY_TMPUPDATE, which works as follows: - When set, only the tmp file in the build tree is updated, but not the original - The tmp file is always what's used in the build - Once unset, the tmp file will always be overwritten by the original on next build Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de> --- Makefile | 4 +++- scripts/Makefile.policy | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a2e5697b09fe219739bf2c4de45db8d54e09fc32..6027b5c37c82a99d1e9518edb790e9934378afab 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,7 @@ ifeq ($(silence),s) quiet=silent_ endif -export quiet Q KBUILD_VERBOSE +export quiet Q KBUILD_VERBOSE KPOLICY_TMPUPDATE # Kbuild will save output files in the current working directory. # This does not need to match to the root of the kernel source tree. @@ -1213,8 +1213,10 @@ security_checkconfigs: collect-policies $(KPOLICY.tmp) FORCE security_%config: collect-policies $(KPOLICY.tmp) FORCE +$(Q)$(foreach p, $(KPOLICY), $(call loop_cmd,sconfig, \ $(@:security_%=%),$p.tmp)) +ifeq ($(KPOLICY_TMPUPDATE),) +$(Q)$(foreach p, $(KPOLICY), \ cp 2>/dev/null $p.tmp $(call resolve-srctree,$p) || true;) +endif quiet_cmd_sconfigpost = SCONFPP $@ cmd_sconfigpost = $(SCONFIGPOST) $2 -D $(depfile) -o $@ $< diff --git a/scripts/Makefile.policy b/scripts/Makefile.policy index 4c71774bbbc98f9de9cf5463e5ef431de60be6ac..7629afc432269e70d5fa7403fef3bad28f00135a 100644 --- a/scripts/Makefile.policy +++ b/scripts/Makefile.policy @@ -23,7 +23,11 @@ endif # --------------------------------------------------------------------------- $(obj)/%.sconfig.tmp: $(src)/%.sconfig FORCE +ifeq ($(KPOLICY_TMPUPDATE),) $(call filechk,cat) +else + $(call if_changed,shipped) +endif quiet_cmd_sconfigpost_c = SCONFPP $@ cmd_sconfigpost_c = $(SCONFIGPOST) -o $@ -D$(depfile) $(2) -- 2.39.5