GDB_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(GDB_VERSION))
GDB_SOURCE = gdb-$(GDB_VERSION).tar.gz
GDB_FROM_GIT = y
+# recent gdb versions (>= 10) have gdbserver moved at the top-level,
+# which requires a different build logic.
+GDB_GDBSERVER_TOPLEVEL = y
endif
ifeq ($(BR2_csky),y)
GDB_LICENSE = GPL-2.0+, LGPL-2.0+, GPL-3.0+, LGPL-3.0+
GDB_LICENSE_FILES = COPYING COPYING.LIB COPYING3 COPYING3.LIB
-# We only want gdbserver and not the entire debugger.
-ifeq ($(BR2_PACKAGE_GDB_DEBUGGER),)
+# On gdb < 10, if you want to build only gdbserver, you need to
+# configure only gdb/gdbserver.
+ifeq ($(BR2_PACKAGE_GDB_DEBUGGER)$(GDB_GDBSERVER_TOPLEVEL),)
GDB_SUBDIR = gdb/gdbserver
+
+# When we want to build the full gdb, or for very recent versions of
+# gdb with gdbserver at the top-level, out of tree build is mandatory,
+# so we create a 'build' subdirectory in the gdb sources, and build
+# from there.
else
-GDB_DEPENDENCIES = ncurses \
- $(if $(BR2_PACKAGE_LIBICONV),libiconv)
GDB_SUBDIR = build
-
-# Since gdb 9, in-tree builds for GDB are not allowed anymore,
-# so we create a 'build' subdirectory in the gdb sources, and
-# build from there.
define GDB_CONFIGURE_SYMLINK
mkdir -p $(@D)/$(GDB_SUBDIR)
ln -sf ../configure $(@D)/$(GDB_SUBDIR)/configure
endef
GDB_PRE_CONFIGURE_HOOKS += GDB_CONFIGURE_SYMLINK
-
endif
# For the host variant, we really want to build with XML support,
--without-x \
--disable-sim \
$(GDB_DISABLE_BINUTILS_CONF_OPTS) \
- $(if $(BR2_PACKAGE_GDB_SERVER),--enable-gdbserver,--disable-gdbserver) \
- --with-curses \
--without-included-gettext \
--disable-werror \
--enable-static \
--without-mpfr
+ifeq ($(BR2_PACKAGE_GDB_DEBUGGER),y)
+GDB_CONF_OPTS += \
+ --enable-gdb \
+ --with-curses
+GDB_DEPENDENCIES = ncurses \
+ $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+else
+GDB_CONF_OPTS += \
+ --disable-gdb \
+ --without-curses
+endif
+
+ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
+GDB_CONF_OPTS += --enable-gdbserver
+else
+GDB_CONF_OPTS += --disable-gdbserver
+endif
+
# When gdb is built as C++ application for ARC it segfaults at runtime
# So we pass --disable-build-with-cxx config option to force gdb not to
# be built as C++ app.