From 4933b686b0f75d6841630917a2d90832df41cac7 Mon Sep 17 00:00:00 2001 From: Bruce Ashfield Date: Fri, 24 Aug 2018 10:59:51 -0400 Subject: kernel-yocto: restore BSP audit visibility During the re-working of kernel fragments and status output cleanup the visibility for BSP level errors was dropped/removed. The audit phase can detect errors, redefinition and invalid configuration fragments. We control the visibility of these reports via the existing KCONF_BSP_AUDIT_LEVEL variable. By default, errors and invalid configuration values will be displayed as a warning. If redefinition values are to be shown the audit level must be raised above the deafult value of '2'. We inhibit these by default, since there are many valid reasons why a BSP will change a default / base config .. and showing them offers no value to the BSP user. Signed-off-by: Bruce Ashfield Signed-off-by: Richard Purdie --- meta/classes/kernel-yocto.bbclass | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 19d74a7875..2ecd060093 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass @@ -350,6 +350,7 @@ python do_kernel_configcheck() { pass config_check_visibility = int(d.getVar("KCONF_AUDIT_LEVEL") or 0) + bsp_check_visibility = int(d.getVar("KCONF_BSP_AUDIT_LEVEL") or 0) # if config check visibility is non-zero, report dropped configuration values mismatch_file = d.expand("${S}/%s/cfg/mismatch.txt" % kmeta) @@ -358,6 +359,27 @@ python do_kernel_configcheck() { with open (mismatch_file, "r") as myfile: results = myfile.read() bb.warn( "[kernel config]: specified values did not make it into the kernel's final configuration:\n\n%s" % results) + + if bsp_check_visibility: + invalid_file = d.expand("${S}/%s/cfg/invalid.cfg" % kmeta) + if os.path.exists(invalid_file) and os.stat(invalid_file).st_size > 0: + with open (invalid_file, "r") as myfile: + results = myfile.read() + bb.warn( "[kernel config]: This BSP sets config options that are not offered anywhere within this kernel:\n\n%s" % results) + errors_file = d.expand("${S}/%s/cfg/fragment_errors.txt" % kmeta) + if os.path.exists(errors_file) and os.stat(errors_file).st_size > 0: + with open (errors_file, "r") as myfile: + results = myfile.read() + bb.warn( "[kernel config]: This BSP contains fragments with errors:\n\n%s" % results) + + # if the audit level is greater than two, we report if a fragment has overriden + # a value from a base fragment. This is really only used for new kernel introduction + if bsp_check_visibility > 2: + redefinition_file = d.expand("${S}/%s/cfg/redefinition.txt" % kmeta) + if os.path.exists(redefinition_file) and os.stat(redefinition_file).st_size > 0: + with open (redefinition_file, "r") as myfile: + results = myfile.read() + bb.warn( "[kernel config]: This BSP has configuration options defined in more than one config, with differing values:\n\n%s" % results) } # Ensure that the branches (BSP and meta) are on the locations specified by -- cgit 1.2.3-korg