* [PATCH] gdb: remove --disable-gdbmi configure option
@ 2023-02-14 16:08 Simon Marchi
0 siblings, 0 replies; only message in thread
From: Simon Marchi @ 2023-02-14 16:08 UTC (permalink / raw)
To: gdb-patches; +Cc: Simon Marchi
I noticed that the --disable-gdbmi option was broken for almost a year
(since 740b42ceb7c "gdb/python/mi: create MI commands using python").
The problem today is the python/py-cmd.c file. It is included in the
build if Python support is enabled, and it calls into some MI functions
(e.g. insert_mi_cmd_entry). If MI support is disabled, we get some
undefined symbols like:
mold: error: undefined symbol: insert_mi_cmd_entry(std::unique_ptr<mi_command, std::default_delete<mi_command> >)
>>> referenced by py-micmd.c
>>> python/py-micmd.o:(micmdpy_install_command(micmdpy_object*))
The python/py-cmd.c file should be included in the build if both Python
and MI support are enabled. It is not a case we support today, but it
could be done with a bit more configure code. However, I think we
should just remove the --disable-gdbmi option, and just include MI
support unconditionally.
Tom Tromey proposed a while ago to remove this option, but it ended
staying:
https://inbox.sourceware.org/gdb-patches/20180628172132.28843-1-tom@tromey.com/
However, there was no strong opposition to remove it. The argument was
just "bah, it doesn't hurt anybody".
But given today's case, I would rather remove complexity rather than add
some. I couldn't find anybody caring deeply for that option, and it's
not like MI adds any external dependency. It's just a bit more code.
Removing the option will not break anybody using --disable-gdbmi (it can
be found in many build scripts [1]), since we don't flag invalid
configure flags.
So, remove the option from configure.ac, and adjust Makefile.in
accordingly to always include the MI objects in the build.
[1] https://github.com/search?q=%22--disable-gdbmi%22&type=code
Change-Id: Ifcaa8c9fc4abc6fa686ed5fd984598644f745240
---
gdb/Makefile.in | 8 +++-----
gdb/configure.ac | 14 --------------
2 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index dac5a66e9ada..b9fa0470fda2 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -293,6 +293,7 @@ SUBDIR_MI_SRCS = \
mi/mi-cmd-target.c \
mi/mi-cmd-var.c \
mi/mi-cmds.c \
+ mi/mi-common.c \
mi/mi-console.c \
mi/mi-getopt.c \
mi/mi-interp.c \
@@ -303,10 +304,6 @@ SUBDIR_MI_SRCS = \
SUBDIR_MI_OBS = $(patsubst %.c,%.o,$(SUBDIR_MI_SRCS))
-SUBDIR_MI_DEPS =
-SUBDIR_MI_LDFLAGS =
-SUBDIR_MI_CFLAGS =
-
#
# TUI sub directory definitions
#
@@ -1249,8 +1246,8 @@ SFILES = \
stub-termcap.c \
symfile-mem.c \
ui-file.h \
- mi/mi-common.c \
$(SUBDIR_CLI_SRCS) \
+ $(SUBDIR_MI_SRCS) \
$(SUBDIR_TARGET_SRCS) \
$(COMMON_SFILES) \
$(SUBDIR_GCC_COMPILE_SRCS)
@@ -1860,6 +1857,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
xml-builtin.o \
$(patsubst %.c,%.o,$(COMMON_SFILES)) \
$(SUBDIR_CLI_OBS) \
+ $(SUBDIR_MI_OBS) \
$(SUBDIR_TARGET_OBS) \
$(SUBDIR_GCC_COMPILE_OBS)
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 47e35f467f8e..6874767ea095 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -318,20 +318,6 @@ if test "x$targ_defvec" != x; then
[Define to BFD's default target vector. ])
fi
-# Enable MI.
-AC_ARG_ENABLE([gdbmi],
- [AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)])],
- [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-gdbmi])],
- [enable_gdbmi=yes])
-if test x"$enable_gdbmi" = xyes; then
- if test -d "$srcdir/mi"; then
- CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
- CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
- CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
- ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
- fi
-fi
-
# Enable TUI.
AC_ARG_ENABLE(tui,
AS_HELP_STRING([--enable-tui],
--
2.39.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-02-14 16:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-14 16:08 [PATCH] gdb: remove --disable-gdbmi configure option Simon Marchi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).