mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-10-25 18:34:35 -09:00
48e4bab464ccc6c829c57bf01482c2dc29af4301
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>
…
…
…
…
…
…
…
…
…
…
…
…
…
…
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at https://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on OFTC IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches
Description
Languages
Makefile
62.2%
Python
19.4%
C
8.4%
Shell
6.1%
PHP
1.4%
Other
2.1%