4b61bd1b7a
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>
26 lines
585 B
Plaintext
26 lines
585 B
Plaintext
|
|
config BOARD_DEPRECATED
|
|
string
|
|
help
|
|
This hidden option is set in the board configuration and indicates
|
|
the Zephyr release that the board configuration will be removed.
|
|
When set, any build for that board will generate a clearly visible
|
|
deprecation warning.
|
|
|
|
config QEMU_TARGET
|
|
bool
|
|
default n
|
|
help
|
|
Mark all QEMU targets with this variable for checking whether we are
|
|
running in an emulated environment.
|
|
|
|
choice
|
|
prompt "Board Selection"
|
|
source "$ENV_VAR_SYM_BOARD_DIR/Kconfig.board"
|
|
endchoice
|
|
|
|
|
|
menu "Board Options"
|
|
source "$ENV_VAR_SYM_BOARD_DIR/Kconfig"
|
|
endmenu
|