[RFA] Remove --disable-gdbcli and --disable-gdbmi
Commit Message
I think it doesn't really make sense to allow building gdb without the
CLI or without MI. Perhaps at one time this was a goal, but libgdb is
long gone, the CLI is intrinsic to gdb, and MI is relied on by many
GUIs.
So, this patch removes the implementation of these configure options.
They are still recognized (this is autoconf's default), but do
nothing.
This simplifies configure.ac and Makefile.in a bit.
Tested by rebuilding.
gdb/ChangeLog
2018-06-28 Tom Tromey <tom@tromey.com>
* configure.ac: Remove --disable-gdbcli and --disable-gdbmi.
* configure: Rebuild.
* Makefile.in (SUBDIR_CLI_DEPS, SUBDIR_CLI_LDFLAGS)
(SUBDIR_CLI_CFLAGS, SUBDIR_MI_DEPS, SUBDIR_MI_LDFLAGS)
(SUBDIR_MI_CFLAGS): Remove.
(SUBDIR_MI_SRCS): Add mi-common.c.
(SFILES): Use SUBDIR_CLI_SRCS, SUBDIR_MI_SRCS. Don't mention
mi-common.c.
(COMMON_OBS): Use SUBDIR_CLI_OBS, SUBDIR_MI_OBS. Don't mention
mi-common.o.
---
gdb/ChangeLog | 13 ++++++++++++
gdb/Makefile.in | 15 +++++---------
gdb/NEWS | 5 +++++
gdb/configure | 52 ------------------------------------------------
gdb/configure.ac | 42 --------------------------------------
5 files changed, 23 insertions(+), 104 deletions(-)
Comments
> From: Tom Tromey <tom@tromey.com>
> Cc: Tom Tromey <tom@tromey.com>
> Date: Thu, 28 Jun 2018 11:21:32 -0600
>
> gdb/ChangeLog
> 2018-06-28 Tom Tromey <tom@tromey.com>
>
> * configure.ac: Remove --disable-gdbcli and --disable-gdbmi.
> * configure: Rebuild.
> * Makefile.in (SUBDIR_CLI_DEPS, SUBDIR_CLI_LDFLAGS)
> (SUBDIR_CLI_CFLAGS, SUBDIR_MI_DEPS, SUBDIR_MI_LDFLAGS)
> (SUBDIR_MI_CFLAGS): Remove.
> (SUBDIR_MI_SRCS): Add mi-common.c.
> (SFILES): Use SUBDIR_CLI_SRCS, SUBDIR_MI_SRCS. Don't mention
> mi-common.c.
> (COMMON_OBS): Use SUBDIR_CLI_OBS, SUBDIR_MI_OBS. Don't mention
> mi-common.o.
> ---
> gdb/ChangeLog | 13 ++++++++++++
> gdb/Makefile.in | 15 +++++---------
> gdb/NEWS | 5 +++++
> gdb/configure | 52 ------------------------------------------------
> gdb/configure.ac | 42 --------------------------------------
> 5 files changed, 23 insertions(+), 104 deletions(-)
Thanks, the NEWS part is OK.
>>>>> "Tom" == Tom Tromey <tom@tromey.com> writes:
Tom> I think it doesn't really make sense to allow building gdb without the
Tom> CLI or without MI. Perhaps at one time this was a goal, but libgdb is
Tom> long gone, the CLI is intrinsic to gdb, and MI is relied on by many
Tom> GUIs.
Tom> So, this patch removes the implementation of these configure options.
Tom> They are still recognized (this is autoconf's default), but do
Tom> nothing.
Tom> This simplifies configure.ac and Makefile.in a bit.
Tom> Tested by rebuilding.
Ping.
Tom
On 06/28/2018 06:21 PM, Tom Tromey wrote:
> I think it doesn't really make sense to allow building gdb without the
> CLI or without MI. Perhaps at one time this was a goal, but libgdb is
> long gone, the CLI is intrinsic to gdb, and MI is relied on by many
> GUIs.
>
> So, this patch removes the implementation of these configure options.
> They are still recognized (this is autoconf's default), but do
> nothing.
>
> This simplifies configure.ac and Makefile.in a bit.
>
> Tested by rebuilding.
I think it's safe to say that most MI frontends end up relying
on CLI commands, e.g., because they allow setting breakpoint commands
or expose a command line widget, or because of gdb/Python scripts.
While it's conceivable that someone might want to drive gdb via
MI for some targeted use case that does not rely or want a CLI might
make sense, it seems unlikely to me. In any
case, --disable-gdbcli doesn't really work, so nobody is
going to miss it.
OTOH, wanting to disable the MI seems a bit more likely, at least
plausible. Doing a web search for "--disable-gdbmi" finds
<https://sourceware.org/ml/gdb-patches/2008-01/msg00866.html>,
someone doing just that. That was 10 years ago, and there doesn't seem to
be many more examples though, at least in the public. It doesn't look
like removing --disable-gdbmi simplifies that much, so I'd be inclined
to keep it, since it actually works.
Do you have further plans of simplifications in this area that
this patch would enable, or was this just something you happened
to run into?
Thanks,
Pedro Alves
>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
Pedro> OTOH, wanting to disable the MI seems a bit more likely, at least
Pedro> plausible. Doing a web search for "--disable-gdbmi" finds
Pedro> <https://sourceware.org/ml/gdb-patches/2008-01/msg00866.html>,
Pedro> someone doing just that. That was 10 years ago, and there doesn't seem to
Pedro> be many more examples though, at least in the public. It doesn't look
Pedro> like removing --disable-gdbmi simplifies that much, so I'd be inclined
Pedro> to keep it, since it actually works.
Pedro> Do you have further plans of simplifications in this area that
Pedro> this patch would enable, or was this just something you happened
Pedro> to run into?
I just stumbled across it. I will redo it to just remove
--disable-gdbcli and leave --disable-gdbmi alone.
Tom
@@ -1,3 +1,16 @@
+2018-06-28 Tom Tromey <tom@tromey.com>
+
+ * configure.ac: Remove --disable-gdbcli and --disable-gdbmi.
+ * configure: Rebuild.
+ * Makefile.in (SUBDIR_CLI_DEPS, SUBDIR_CLI_LDFLAGS)
+ (SUBDIR_CLI_CFLAGS, SUBDIR_MI_DEPS, SUBDIR_MI_LDFLAGS)
+ (SUBDIR_MI_CFLAGS): Remove.
+ (SUBDIR_MI_SRCS): Add mi-common.c.
+ (SFILES): Use SUBDIR_CLI_SRCS, SUBDIR_MI_SRCS. Don't mention
+ mi-common.c.
+ (COMMON_OBS): Use SUBDIR_CLI_OBS, SUBDIR_MI_OBS. Don't mention
+ mi-common.o.
+
2018-06-28 Pedro Alves <palves@redhat.com>
* infrun.c (handle_inferior_event_1) <TARGET_WAITKIND_EXECD>:
@@ -249,10 +249,6 @@ SUBDIR_CLI_SRCS = \
SUBDIR_CLI_OBS = $(patsubst %.c,%.o,$(SUBDIR_CLI_SRCS))
-SUBDIR_CLI_DEPS =
-SUBDIR_CLI_LDFLAGS =
-SUBDIR_CLI_CFLAGS =
-
#
# MI sub directory definitons
#
@@ -267,6 +263,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 \
@@ -277,10 +274,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
#
@@ -1159,7 +1152,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)
@@ -1555,10 +1549,11 @@ TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR)
COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
exec.o \
- mi/mi-common.o \
version.o \
xml-builtin.o \
$(patsubst %.c,%.o,$(COMMON_SFILES)) \
+ $(SUBDIR_CLI_OBS) \
+ $(SUBDIR_MI_OBS) \
$(SUBDIR_TARGET_OBS) \
$(SUBDIR_GCC_COMPILE_OBS)
@@ -94,6 +94,11 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
the tradeoff that there is a possibility of false hits being
reported.
+* Configure changes
+
+--disable-gdbmi and --disable-gdbcli have been removed
+ These are now silently accepted, but do nothing.
+
*** Changes in GDB 8.1
* GDB now supports dynamically creating arbitrary register groups specified
@@ -854,8 +854,6 @@ with_auto_load_dir
with_auto_load_safe_path
enable_targets
enable_64_bit_bfd
-enable_gdbcli
-enable_gdbmi
enable_tui
enable_gdbtk
with_libunwind_ia64
@@ -1545,8 +1543,6 @@ Optional Features:
--enable-targets=TARGETS
alternative target configurations
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
- --disable-gdbcli disable command-line interface (CLI)
- --disable-gdbmi disable machine-interface (MI)
--enable-tui enable full-screen terminal user interface (TUI)
--enable-gdbtk enable gdbtk graphical user interface (GUI)
--enable-profiling enable profiling of GDB
@@ -6752,54 +6748,6 @@ _ACEOF
fi
-# The CLI cannot be disabled yet, but may be in the future.
-
-# Enable CLI.
-# Check whether --enable-gdbcli was given.
-if test "${enable_gdbcli+set}" = set; then :
- enableval=$enable_gdbcli; case $enableval in
- yes)
- ;;
- no)
- as_fn_error $? "the command-line interface cannot be disabled yet" "$LINENO" 5 ;;
- *)
- as_fn_error $? "bad value $enableval for --enable-gdbcli" "$LINENO" 5 ;;
- esac
-else
- enable_gdbcli=yes
-fi
-
-if test x"$enable_gdbcli" = xyes; then
- if test -d $srcdir/cli; then
- CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
- CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
- CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
- ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
- fi
-fi
-
-# Enable MI.
-# Check whether --enable-gdbmi was given.
-if test "${enable_gdbmi+set}" = set; then :
- enableval=$enable_gdbmi; case $enableval in
- yes | no)
- ;;
- *)
- as_fn_error $? "bad value $enableval for --enable-gdbmi" "$LINENO" 5 ;;
- esac
-else
- enable_gdbmi=yes
-fi
-
-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.
# Check whether --enable-tui was given.
if test "${enable_tui+set}" = set; then :
@@ -299,48 +299,6 @@ if test "x$targ_defvec" != x; then
[Define to BFD's default target vector. ])
fi
-# The CLI cannot be disabled yet, but may be in the future.
-
-# Enable CLI.
-AC_ARG_ENABLE(gdbcli,
-AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
- [case $enableval in
- yes)
- ;;
- no)
- AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
- *)
- AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
- esac],
- [enable_gdbcli=yes])
-if test x"$enable_gdbcli" = xyes; then
- if test -d $srcdir/cli; then
- CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
- CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
- CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
- ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
- fi
-fi
-
-# Enable MI.
-AC_ARG_ENABLE(gdbmi,
-AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
- [case $enableval in
- yes | no)
- ;;
- *)
- AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
- esac],
- [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], [enable full-screen terminal user interface (TUI)]),