print(f'[+] Config check is finished: \'OK\' - {ok_count}{ok_suppressed} / \'FAIL\' - {fail_count}{fail_suppressed}')
-def parse_kconfig_file(mode, parsed_options, fname):
+def parse_kconfig_file(_mode, parsed_options, fname):
with _open(fname, 'rt', encoding='utf-8') as f:
opt_is_on = re.compile(r"CONFIG_[a-zA-Z0-9_]+=.+$")
opt_is_off = re.compile(r"# CONFIG_[a-zA-Z0-9_]+ is not set$")
mmap_rnd_bits_max = parsed_kconfig_options.get('CONFIG_ARCH_MMAP_RND_BITS_MAX', None)
if mmap_rnd_bits_max:
override_expected_value(config_checklist, 'CONFIG_ARCH_MMAP_RND_BITS', mmap_rnd_bits_max)
+ else:
+ # remove the CONFIG_ARCH_MMAP_RND_BITS check to avoid false results
+ print('[-] Can\'t check CONFIG_ARCH_MMAP_RND_BITS without CONFIG_ARCH_MMAP_RND_BITS_MAX')
+ config_checklist[:] = [o for o in config_checklist if o.name != 'CONFIG_ARCH_MMAP_RND_BITS']
# now everything is ready, perform the checks
perform_checks(config_checklist)
for opt in config_checklist:
if opt.name == 'CONFIG_ARCH_MMAP_RND_BITS':
continue # don't add CONFIG_ARCH_MMAP_RND_BITS because its value needs refinement
+ if opt.expected == 'is not off':
+ continue # don't add Kconfig options without explicitly recommended values
if opt.expected == 'is not set':
print(f'# {opt.name} is not set')
else: