80a24d0965
Some external toolchains do not have gdbserver available, but the option BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY is always visible. And when enabled, this option aborts with an error when gdbserver cannot be found: Could not find gdbserver in external toolchain Due to that, some random configurations fail to build when BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY=y, for example with the Bootlin toolchains for Microblaze or OpenRISC (because there's no GDB support for those architectures). One solution could be to make "Could not find gdbserver in external toolchain" a warning instead of a hard error, but then nobody would notice about this issue, in cases where it should legitimately abort with a hard error. So, the clean solution would be to add a BR2_TOOLCHAIN_EXTERNAL_HAS_GDBSERVER. But that means all existing external toolchains would have to be modified to select this option. Instead, and as an exception, we chose to use inverted logic, and create an option that is the opposite: BR2_TOOLCHAIN_EXTERNAL_HAS_NO_GDBSERVER. By default, we assume external toolchains have gdbserver. If BR2_TOOLCHAIN_EXTERNAL_HAS_NO_GDBSERVER is enabled, we disallow the BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY option. Note that the case of custom external toolchain does not matter: by definition they are not tested by the autobuilders, and by definition, we cannot know in menuconfig if the custom toolchain has or does not have gdbserver. We could make a user-visible option for it, but that adds no value over simply erroring out because the gdbserver binary can't be found. Similarly, we could add default y if BR2_PACKAGE_GDB_ARCH_SUPPORTS but that would make it impossible for someone to include a custom gdbserver in their external toolchain, and gives no benefit at all. This will help fixing: http://autobuild.buildroot.net/results/6315ef7b66ee4ae8f870c92186bc674d65f62f2c/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.clang-format | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
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 http://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