mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-11-14 16:52:08 -10:00
get_warnings_for_symbols_without_definition() skips any symbol matching BR2_PACKAGE_HOST_* or BR2_PACKAGE_HAS_HOST_*, via br.re_host_symbol. This blanket exclusion was needed because we don't require a Config.in.host to be present for host packages, so BR2_PACKAGE_HOST_FOO may in fact be undefined and that's perfectly fine. However, this also excludes any other options that should be defined in the Config.in.host, e.g. a BR2_PACKAGE_HOST_FOO_BAR suboption. If such an option is misspelled in the .mk file, we will not notice. We already treat the BR2_PACKAGE_* symbols specially. They are considered as "used" even if there is no direct reference to them in the .mk file. This is done in the handle_eval function. Depending on the package infra and the type of package (bootloader, toolchain, ...) it sets the corresponding kconfig symbol as "used". At that point, we can also handle the special case of the host kconfig symbols. Instead of a blanket exclusion, we say that the BR2_PACKAGE_HOST_FOO option is implicitly defined by the eval statement. We only add BR2_PACKAGE_HOST_FOO as implicitly defined, so any suboptions will still be checked by get_warnings_for_symbols_without_definition(). We could alternatively also have skipped the "usage" marking of host packages. This approach felt more consistent though. Make handle_eval() in checksymbolslib/makefile.py record the implicitly defined symbols directly, at the $(eval $(host-...)) line that creates them: - BR2_PACKAGE_HOST_<PKG> as a definition, for host-*-package and host-virtual-package; - BR2_PACKAGE_HAS_HOST_<PKG> as virtual, for host-virtual-package, mirroring how the plain virtual-package case already registers BR2_PACKAGE_HAS_<PKG>. This makes br.re_host_symbol and its use in get_warnings_for_symbols_without_definition() unnecessary, so drop them. The check now flags a real symbol name once it lacks both an explicit and an implicit definition, instead of ignoring the whole BR2_PACKAGE_HOST_*/BR2_PACKAGE_HAS_HOST_* namespace. Assisted-by: LLM Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be> Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>