From patchwork Tue Feb 14 16:13:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 64999 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AC17D385841C for ; Tue, 14 Feb 2023 16:14:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AC17D385841C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1676391248; bh=WviahYxNuHTHtv8M3HgsUx6ml0XOs+8NmoaJ9zWCCHM=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=dwMcNl9l/7xmrO7kf51L5kXcV9QJQ2JPjg/ovR6VgpTVXt/s6CJVfsFAp21txlsHz A3BUzOQKJ8xbwfiV9vxmyhW4loTXjv25AH4gV0IbZgEp8Jgd6adD4EwJKKqddrAbvh xJ4j20ikanZCNiugJAbZil56jI/yKLoFI4JftQiE= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id D112A3858D33 for ; Tue, 14 Feb 2023 16:13:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D112A3858D33 Received: from smarchi-efficios.internal.efficios.com (192-222-180-24.qc.cable.ebox.net [192.222.180.24]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 3CC6A1E0D3; Tue, 14 Feb 2023 11:13:44 -0500 (EST) To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH v2] gdb: remove --disable-gdbmi configure option Date: Tue, 14 Feb 2023 11:13:43 -0500 Message-Id: <20230214161343.171053-1-simon.marchi@efficios.com> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 X-Spam-Status: No, score=-3497.7 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Simon Marchi via Gdb-patches From: Simon Marchi Reply-To: Simon Marchi Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" New in v2: - I had forgotten to include the re-generated configure in the patch, it's there now. 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 >) >>> 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 | 31 ++----------------------------- gdb/configure.ac | 14 -------------- 3 files changed, 5 insertions(+), 48 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 b/gdb/configure index 1114bcdc0af1..4cc359c1a8bf 100755 --- a/gdb/configure +++ b/gdb/configure @@ -913,7 +913,6 @@ with_auto_load_safe_path enable_targets enable_64_bit_bfd with_amd_dbgapi -enable_gdbmi enable_tui enable_gdbtk with_debuginfod @@ -1630,7 +1629,6 @@ Optional Features: --enable-targets=TARGETS alternative target configurations --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) - --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 @@ -11450,7 +11448,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11453 "configure" +#line 11451 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11556,7 +11554,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11559 "configure" +#line 11557 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -18304,31 +18302,6 @@ _ACEOF 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 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],