[RFA] Remove --disable-gdbcli and --disable-gdbmi

Message ID 20180628172132.28843-1-tom@tromey.com
State New, archived
Headers

Commit Message

Tom Tromey June 28, 2018, 5:21 p.m. UTC
  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

Eli Zaretskii June 28, 2018, 6:34 p.m. UTC | #1
> 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 Tromey July 16, 2018, 4:37 p.m. UTC | #2
>>>>> "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
  
Pedro Alves July 17, 2018, 12:23 p.m. UTC | #3
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
  
Tom Tromey July 17, 2018, 2:02 p.m. UTC | #4
>>>>> "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
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 417c563849a..4ae266837a4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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>:
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 5934cd6a23e..eeff729dac9 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -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)
 
diff --git a/gdb/NEWS b/gdb/NEWS
index 016796a802a..a5199d20ef6 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -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
diff --git a/gdb/configure b/gdb/configure
index d3a3bbe44c9..48c192888df 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -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 :
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 44b6c62d709..658ae3fbaeb 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -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)]),