The GDB version used on ARC is based on a recent gdb code base, post gdb 9.2. This recent gdb code base, which pre-figures what will be in gdb 10, has a significant change: gdbserver is not longer in gdb/gdbserver, but at the top-level, and the mechanism to build gdbserver only has changed. Due to this change, a build of ARC GDB for gdbserver only fails with: /bin/bash: line 0: cd: /opt/output/build/gdb-arc-2020.03-release-gdb/gdb/gdbserver: No such file or directory This commit adjusts gdb.mk to support four cases: - "old" gdb, gdbserver only - "old" gdb, with the gdb debugger (and optionally gdbserver as well) - "new" gdb, gdbserver only - "new" gdb, with the gdb debugger (and optionally gdbserver as well) A boolean GDB_GDBSERVER_TOPLEVEL is introduced to differentiate between the old and new gdb, it is set to "y" for gdb versions that have the gdbserver code at the top-level. For now, only the ARC version sets it, but in the future, upstream gdb version 10 will also have to set it. Here is the behavior, for each case: (1) "old" gdb, gdbserver only We set GDB_SUBDIR to gdb/gdbserver, so only the configure script in this folder gets called. --enable-gdbserver --disable-gdb are passed in CONF_OPTS. (2) "old" gdb, with the gdb debugger (and optionally gdbserver as well) We set GDB_SUBDIR to build/, an empty directory which allows to do an out of tree build, which is mandatory for a full gdb build since gdb 9.x. --enable-gdb is passed in CONF_OPTS as well as --enable-gdbserver or --disable-gdbserver depending on whether gdbserver is enabled as well. (3) "new" gdb, gdbserver only We set GDB_SUBDIR to build/, an empty directory which allows to do an out of tree build, which is mandatory for a full gdb build since gdb 9.x. --enable-gdbserver --disable-gdb are passed in CONF_OPTS. (4) "new" gdb, with the gdb debugger (and optionally gdbserver as well) We set GDB_SUBDIR to build/, an empty directory which allows to do an out of tree build, which is mandatory for a full gdb build since gdb 9.x. --enable-gdb is passed in CONF_OPTS as well as --enable-gdbserver or --disable-gdbserver depending on whether gdbserver is enabled as well. In addition to these changes, some related changes are done as well: - We re-enable building both gdb and gdbserver on ARC, as it works again. - We only pass --with-curses when curses is really provided, i.e when the full debugger is being built. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Tested-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.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 Freenode IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches