mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
097ff01fb9
At present if an optional Kconfig value needs to be used it must be bracketed by #ifdef. For example, with this Kconfig setup: config WIBBLE bool "Support wibbles, the world needs more wibbles" config WIBBLE_ADDR hex "Address of the wibble" depends on WIBBLE then the following code must be used: #ifdef CONFIG_WIBBLE static void handle_wibble(void) { int val = CONFIG_WIBBLE_ADDR; ... } #endif static void init_machine() { ... #ifdef CONFIG_WIBBLE handle_wibble(); #endif } Add a new IF_ENABLED_INT() to help with this. So now it is possible to write, without #ifdefs: static void handle_wibble(void) { int val = IF_ENABLED_INT(CONFIG_WIBBLE, CONFIG_WIBBLE_ADDR); ... } static void init_machine() { ... if (IS_ENABLED(CONFIG_WIBBLE)) handle_wibble(); } The value will be CONFIG_WIBBLE_ADDR if CONFIG_WIBBLE is defined and will produce a build error if not.. This allows us to reduce the use of #ifdef in the code, ensuring that the compiler still checks the code even if it is not ultimately used for a particular build. Add a CONFIG_IF_ENABLED_INT() version as well. If an attempt is made to use a value that does not exist (i.e. when the conditional is not enabled), an error about a non-existing function is generated, e.g.: common/bloblist.c:447: undefined reference to `invalid_use_of_IF_ENABLED_INT' Signed-off-by: Simon Glass <sjg@chromium.org> |
||
---|---|---|
.. | ||
basic | ||
coccinelle | ||
dtc | ||
kconfig | ||
.gitignore | ||
bin2c.c | ||
binutils-version.sh | ||
build-cb.sh | ||
build-efi.sh | ||
build-whitelist.sh | ||
build_OID_registry | ||
check-config.sh | ||
check-of.sh | ||
checkpatch.pl | ||
checkstack.pl | ||
clang-version.sh | ||
cleanpatch | ||
coccicheck | ||
config_whitelist.txt | ||
const_structs.checkpatch | ||
coreboot.sed | ||
decodecode | ||
documentation-file-ref-check | ||
dtc-version.sh | ||
env2string.awk | ||
gcc-stack-usage.sh | ||
gcc-version.sh | ||
gen_ll_addressable_symbols.sh | ||
get_default_envs.sh | ||
get_maintainer.pl | ||
Kbuild.include | ||
Kconfig.include | ||
kernel-doc | ||
ld-version.sh | ||
Lindent | ||
mailmapper | ||
Makefile | ||
Makefile.autoconf | ||
Makefile.build | ||
Makefile.clean | ||
Makefile.extrawarn | ||
Makefile.host | ||
Makefile.lib | ||
Makefile.spl | ||
Makefile.uncmd_spl | ||
mkmakefile | ||
objdiff | ||
of_allowlist.txt | ||
pylint.base | ||
setlocalversion | ||
show-gnu-make | ||
spdxcheck.py | ||
spelling.txt |