diff --git a/dist/tools/kconfiglib/genconfig.py b/dist/tools/kconfiglib/genconfig.py index ac72c62760..2fa52f51b3 100755 --- a/dist/tools/kconfiglib/genconfig.py +++ b/dist/tools/kconfiglib/genconfig.py @@ -393,9 +393,7 @@ with error.""") kconf = RiotKconfig(args.kconfig_filename, warn_to_stderr=False) merge_configs(kconf, args.config_sources) - # HACK: Force all symbols to be evaluated, to catch warnings generated - # during evaluation (such as out-of-range integers) - kconf.write_config(os.devnull, save_old=False) + kconf.evaluate_config() if not check_configs(kconf) and not args.ignore_config_errors: sys.exit(1) diff --git a/dist/tools/kconfiglib/riot_kconfig.py b/dist/tools/kconfiglib/riot_kconfig.py index be86733d65..c8a47a0800 100644 --- a/dist/tools/kconfiglib/riot_kconfig.py +++ b/dist/tools/kconfiglib/riot_kconfig.py @@ -28,6 +28,14 @@ class RiotKconfig(Kconfig): super(RiotKconfig, self).write_autoconf(filename, header) self.unique_defined_syms = tmp_unique_defined_syms + def evaluate_config(self): + """Evaluate the current configuration. + + Useful to catch warnings (such as out-of-range integers) before writing + the configuration to a file. + """ + self._config_contents(None) + def standard_riot_kconfig(description=None): """