summaryrefslogtreecommitdiff
path: root/allmodconfig.py
AgeCommit message (Collapse)Author
2018-11-17Add support for KCONFIG_ALLCONFIGUlf Magnusson
This allows some symbol values to be forced while running all{def,no,yes,mod}config.py. See Documentation/kbuild/kconfig.txt in the Linux kernel. Add a helper function load_allconfig() to Kconfiglib to avoid code duplication in the tools. Also add functions for enabling/disabling the warning that's generated when a symbol is assigned multiple times in a (set of) .config files and the values differ. It should be disabled when merging the KCONFIG_ALLCONFIG configuration file. Previously, only the warning generated when the assigned values are identical could be disabled. Disable all warnings related to assigning a symbol multiple times in examples/merge_config.py as well.
2018-08-22Introduce Kconfig.unique_defined_syms and Kconfig.unique_choicesUlf Magnusson
These are the same as Kconfig.defined_syms and Kconfig.choices, except duplicates are removed. Kconfig order is still preserved. This is almost always what you want when iterating through symbols and choices, as it potentially saves work, avoids generating duplicates when writing output, and still preserves Kconfig order for readability. The old attributes will be kept for backwards compatibility (maybe there's some rare cases where they could be useful too). They're created internally anyway.
2018-07-11Massively speed up U-Boot parsingUlf Magnusson
U-Boot has a ton of definition locations for some symbols, causing a lot of redundant work when iterating over Kconfig.defined_syms in _build_dep(). Iterate over set(Kconfig.defined_syms) instead, wherever possible. This speeds up the U-Boot parsing time from 4 seconds to 0.6 seconds on my machine. Also update the bundled tools to iterate over set(Kconfig.defined_syms). The performance loss is negligible even for projects that don't use multiple definition locations. Update the documentation to clarify that symbols/choices defined in multiple locations appear multiple times in Kconfig.defined_syms/choices as well.
2018-06-12Simplify allnoconfig.py and allyesconfig.pyUlf Magnusson
We can rely on set_value() being a no-op when setting non-bool/tristate symbols to 0/1/2 (due to those values being invalid for other types). Remove some long duplicated comments too.
2018-06-11Mention KCONFIG_CONFIG in the all*config.py scriptsUlf Magnusson
This environment variable was inherited from the C tools. kconfiglib.standard_config_filename() looks at it.
2018-06-06Add license tags to scriptsUlf Magnusson
Everything's ISC.
2018-05-30Add an allmodconfig implementationUlf Magnusson
Verified to produce identical output to 'make allmodconfig', for all arches. Will be packaged.