zephyr/arch
Sebastian Bøe 4b61bd1b7a kconfig: Prune kconfig files that don't match the ARCH or BOARD
When Kconfiglib was introduced it caused a significant performance
issue. This patch uses pruning to mitigate the performance issue.

The pruning exploits the fact that before the Kconfig database is
parsed we already know what ARCH and BOARD has been selected. So in
theory we could prune away all Kconfig sources that are not related to
the current ARCH or BOARD. In practice, it is only the Kconfig sources
in zephyr/arch/$ARCH and zephyr/board/$ARCH/ that are easy to prune.

Still, that is quite a few Kconfig sources. For qemu_x86 this patch
reduced the number of parsed Kconfig source files from 632 to
272. This pruning resulted in a incremental reconfiguration (time
cmake ..) speedup of 21% (0.56s to 0.46) and a clean build speedup of
4% (Using board qemu_x86 and sample hello_world).

Furthermore, it should be easier to maintain ARCH's and BOARD's
out-of-tree since the user now has a mechanism to redirect where
Kconfig sources are found. But this has not been explored.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-01-12 07:29:05 -05:00
..
arc arch: fix typo defafult -> default 2018-01-08 08:08:45 -05:00
arm drivers: entropy: stm32: limit driver to SoC supporting it 2018-01-11 19:00:19 -05:00
common gen_isr_tables: Minor refactoring 2018-01-04 08:55:26 -05:00
nios2 arch: architecture defines kernel entry 2017-12-27 14:16:08 -05:00
posix native: Handle gracefully SIGTERM and SIGINT 2018-01-02 15:26:34 -05:00
riscv32 arch: architecture defines kernel entry 2017-12-27 14:16:08 -05:00
x86 arch: fix typo defafult -> default 2018-01-08 08:08:45 -05:00
xtensa arch: architecture defines kernel entry 2017-12-27 14:16:08 -05:00
CMakeLists.txt Introduce cmake-based rewrite of KBuild 2017-11-08 20:00:22 -05:00
Kconfig kconfig: Prune kconfig files that don't match the ARCH or BOARD 2018-01-12 07:29:05 -05:00