As we are about to switch to 8.0 as the default gdb version, we need to adjust how the gdb dependencies are handled. Indeed, from 8.0 onwards, gdb needs a C++11 capable compiler, i.e at least gcc 4.8. Until now, Config.in.host was making sure that gdb 8.0 was not selectable if the cross-compilation toolchain did not have C++ support with gcc >= 4.8. This worked fine because the default version of gdb, used as the target gdb version when no host gdb is built, was 7.11, and did not require C++11. With the switch to 8.0 as the default version, when target gdb is enabled but not host gdb, 8.0 is used, which means we need a C++11 capable compiler. The dependencies in Config.in.host are no longer sufficient. So instead, we remove the target-related dependencies from Config.in.host and move them properly to Config.in. The overall logic is the following: - In Config.in.host, BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS ensures that we have at least host gcc 4.8 if we're on ARC, because the ARC gdb needs C++11. We remove the target toolchain related dependencies from here. - In Config.in.host, the version selection ensures that 8.0 cannot be selected if the host toolchain does not have at least gcc 4.8. We remove the target toolchain related dependencies from here. - In Config.in.host, we introduce a BR2_PACKAGE_GDB_NEEDS_CXX11 option, that indicates whether the currently selected version of gdb requires C++11 support in the toolchain to build the target variant. Even though this option is more related to the target variant of gdb, we keep it in Config.in.host so that it appears next to the definition of BR2_GDB_VERSION, to make sure they are kept in sync. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitlab-ci.yml.in | ||
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 Freenode IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches