From: Guinevere Larsen <guinevere@redhat.com>
To: gdb-patches@sourceware.org, guinevere@redhat.com
Subject: [PING][PATCH v3] gdb, configure: Add disable-formats option for configure
Date: Thu, 27 Mar 2025 17:21:43 -0300 [thread overview]
Message-ID: <5dc0d2cc-51f6-4265-8e5b-bdb964a20ca3@redhat.com> (raw)
In-Reply-To: <20250307115821.1507435-1-guinevere@redhat.com>
Ping :)
--
Cheers,
Guinevere Larsen
She/Her/Hers
On 3/7/25 8:58 AM, Guinevere Larsen wrote:
> GDB has support for many binary file formats, some which might be very
> unlikely to be found in some situations (such as the COFF format in
> linux). This commit introduces the option for a user to choose which
> formats GDB will support at build configuration time.
>
> This is especially useful to avoid possible security concerns with
> readers that aren't expected to be used at all, as they are one of
> the simplest vectors for an attacker to try and hit GDB with. This
> change can also reduce the size of the final binary, if that is a
> concern.
>
> This commit adds a switch to the configure script allowing a user to
> only enable selected file formats, called --enable-binary-file-formats.
> The default behavior when the switch is omitted is to compile all file
> formats, keeping the original behavior of the script. At the time of
> this commit, the valid options for this option are: dbx, coff (which
> includes coff-pe), xcoff, mips, elf, macho and all. All is treated
> especially, activating all supported readers.
>
> A few targets may require specific binary file format support, as they
> directly call functions defined by the file reader. Specifically,
> windows targets require coff support, and rs6000 aix and lynx178 targets
> require xcoff support. Considering that those formats are the main - or
> only - one available in those targets, I believe it makes sense to
> re-enable those readers. If that happens, the script will emit the
> following warning:
>
> FOO is required to support one or more requested targets. Adding it
>
> Users aren't able to force the disabling of those formats, since GDB
> will not compile without those readers. Ideally we'd like to be able
> to disable even those formats, in case a user wants to build GDB only
> to examine remote files for example, but the current infrastructure
> for the file format readers doesn't allow us to do it.
>
> Mach-O and elf support are also dependent on BFD support being compiled
> in. In case one of those was requested and BFD does not support them,
> the following error is emitted:
>
> FOO was requested, but BFD does not support it.
>
> Finally, this configure switch is also printed by the "show
> configuration" command in GDB.
> ---
> gdb/Makefile.in | 13 +++----
> gdb/NEWS | 11 ++++++
> gdb/README | 24 +++++++++++++
> gdb/config.in | 3 ++
> gdb/configure | 81 +++++++++++++++++++++++++++++++++++++++++---
> gdb/configure.ac | 65 +++++++++++++++++++++++++++++++++--
> gdb/configure.format | 51 ++++++++++++++++++++++++++++
> gdb/configure.tgt | 20 +++++++++--
> gdb/doc/gdb.texinfo | 8 +++++
> gdb/top.c | 5 +++
> 10 files changed, 264 insertions(+), 17 deletions(-)
> create mode 100644 gdb/configure.format
>
> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> index a24c86fcff8..778ed54090f 100644
> --- a/gdb/Makefile.in
> +++ b/gdb/Makefile.in
> @@ -904,13 +904,15 @@ ALL_TARGET_OBS = \
> vax-tdep.o \
> windows-tdep.o \
> x86-tdep.o \
> - xcoffread.o \
> xstormy16-tdep.o \
> xtensa-config.o \
> xtensa-linux-tdep.o \
> xtensa-tdep.o \
> z80-tdep.o
>
> +# Object files for reading specific types of debug information.
> +FORMAT_OBS = @FORMAT_OBS@
> +
> # The following native-target dependent variables are defined on
> # configure.nat.
> NAT_FILE = @NAT_FILE@
> @@ -1067,8 +1069,6 @@ COMMON_SFILES = \
> c-varobj.c \
> charset.c \
> cli-out.c \
> - coff-pe-read.c \
> - coffread.c \
> complaints.c \
> completer.c \
> copying.c \
> @@ -1082,7 +1082,6 @@ COMMON_SFILES = \
> d-lang.c \
> d-namespace.c \
> d-valprint.c \
> - dbxread.c \
> dcache.c \
> debug.c \
> debuginfod-support.c \
> @@ -1174,7 +1173,6 @@ COMMON_SFILES = \
> memtag.c \
> minidebug.c \
> minsyms.c \
> - mipsread.c \
> namespace.c \
> objc-lang.c \
> objfiles.c \
> @@ -1267,7 +1265,6 @@ SFILES = \
> d-exp.y \
> dtrace-probe.c \
> elf-none-tdep.c \
> - elfread.c \
> f-exp.y \
> gcore-elf.c \
> gdb.c \
> @@ -1887,7 +1884,6 @@ ALLDEPFILES = \
> x86-gnu-nat.c \
> x86-nat.c \
> x86-tdep.c \
> - xcoffread.c \
> xstormy16-tdep.c \
> xtensa-config.c \
> xtensa-linux-nat.c \
> @@ -1909,7 +1905,8 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
> $(SUBDIR_CLI_OBS) \
> $(SUBDIR_MI_OBS) \
> $(SUBDIR_TARGET_OBS) \
> - $(SUBDIR_GCC_COMPILE_OBS)
> + $(SUBDIR_GCC_COMPILE_OBS) \
> + $(FORMAT_OBS)
>
> SUBDIRS = doc @subdirs@ data-directory
> CLEANDIRS = $(SUBDIRS)
> diff --git a/gdb/NEWS b/gdb/NEWS
> index f5dbf5c3350..2a916d356ef 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -85,6 +85,17 @@ qXfer:threads:read
> * Support for stabs debugging format and the a.out/dbx object format is
> deprecated, and will be removed in GDB 18.
>
> +* Configure changes
> +
> +enable-binary-file-formats=[FORMAT,...]
> +enable-binary-file-formats=all
> + A user can now decide to only compile support for certain file formats.
> + The available formats at this point are: dbx, coff, xcoff, elf, mach-o
> + and mips. Some targets require specific file formats to be available,
> + and in such cases, the configure script will warn the user and add
> + support anyway. By default, all formats will be compiled in, to
> + continue the behavior from before adding the switch.
> +
> *** Changes in GDB 16
>
> * Support for Nios II targets has been removed as this architecture
> diff --git a/gdb/README b/gdb/README
> index b6eb3f12c56..0168afe7cd1 100644
> --- a/gdb/README
> +++ b/gdb/README
> @@ -417,6 +417,30 @@ more obscure GDB `configure' options are not listed here.
> There is no convenient way to generate a list of all available
> targets.
>
> +`--enable-binary-file-formats=FORMAT,FORMAT,...'
> +`--enable-binary-file-formats=all'
> + Configure GDB to only be be able to read selected file formats.
> + The special value "all" causes all file formats to be compiled
> + in, and is the the default behavior of the option. This option
> + is meant for advanced users who are sure of what they expect,
> + if you are unsure which options you will need on your debugging
> + sessions, we recommend that you not use this feature. The
> + accepted options are:
> + * coff: Main format on windows systems. This is required to
> + compile with windows target support;
> + * dbx (also known as a.out): is a legacy file format, this
> + is recommended if you know you will be dealing with this
> + file format;
> + * elf: Main format of linux systems. This is heavily
> + recommended when compiling with linux support;
> + * macho: Main format on MacOS systems, this is heavily
> + recommended when compiling for those targets;
> + * mips (also known as ecoff): this is the main file format
> + for targets running on MIPS CPUs. It is heavily recommended
> + when supporting those targets.
> + * xcoff: Main format of AIX systems, this is required to
> + compile for AIX targets and rs6000 CPUs.
> +
> `--with-gdb-datadir=PATH'
> Set the GDB-specific data directory. GDB will look here for
> certain supporting files or scripts. This defaults to the `gdb'
> diff --git a/gdb/config.in b/gdb/config.in
> index db63aeaec75..248ebaa68af 100644
> --- a/gdb/config.in
> +++ b/gdb/config.in
> @@ -733,6 +733,9 @@
> /* Define to 1 if you have the ANSI C header files. */
> #undef STDC_HEADERS
>
> +/* Which file formats were requested at configure time. */
> +#undef SUPPORTED_FORMATS
> +
> /* automatically load a system-wide gdbinit file */
> #undef SYSTEM_GDBINIT
>
> diff --git a/gdb/configure b/gdb/configure
> index bdc405e01b3..8229ccaa588 100755
> --- a/gdb/configure
> +++ b/gdb/configure
> @@ -706,6 +706,7 @@ LIBGUI
> LTLIBLZMA
> LIBLZMA
> HAVE_LIBLZMA
> +FORMAT_OBS
> SER_HARDWIRE
> WERROR_CFLAGS
> WARN_CFLAGS
> @@ -934,6 +935,7 @@ with_relocated_sources
> with_auto_load_dir
> with_auto_load_safe_path
> enable_targets
> +enable_binary_file_formats
> enable_64_bit_bfd
> with_amd_dbgapi
> enable_tui
> @@ -1645,6 +1647,9 @@ Optional Features:
> --disable-nls do not use Native Language Support
> --enable-targets=TARGETS
> alternative target configurations
> + --enable-binary-file-formats=FILE_FORMATS
> + enable support for selected file formats (default
> + 'all')
> --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
> --enable-tui enable full-screen terminal user interface (TUI)
> --enable-gdbtk enable gdbtk graphical user interface (GUI)
> @@ -11500,7 +11505,7 @@ else
> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
> lt_status=$lt_dlunknown
> cat > conftest.$ac_ext <<_LT_EOF
> -#line 11503 "configure"
> +#line 11508 "configure"
> #include "confdefs.h"
>
> #if HAVE_DLFCN_H
> @@ -11606,7 +11611,7 @@ else
> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
> lt_status=$lt_dlunknown
> cat > conftest.$ac_ext <<_LT_EOF
> -#line 11609 "configure"
> +#line 11614 "configure"
> #include "confdefs.h"
>
> #if HAVE_DLFCN_H
> @@ -24875,6 +24880,18 @@ esac
> fi
>
>
> +# Check whether --enable-binary_file_formats was given.
> +if test "${enable_binary_file_formats+set}" = set; then :
> + enableval=$enable_binary_file_formats; case "${enableval}" in
> + yes | "") as_fn_error $? "enable-formats option must specify file formats or 'all'" "$LINENO" 5
> + ;;
> + no) enable_binary_file_formats= ;;
> + *) enable_binary_file_formats=$enableval ;;
> +esac
> +else
> + enable_binary_file_formats=all
> +fi
> +
>
> # Check whether --enable-64-bit-bfd was given.
> if test "${enable_64_bit_bfd+set}" = set; then :
> @@ -24958,11 +24975,20 @@ fi
> TARGET_OBS=
> all_targets=
> HAVE_NATIVE_GCORE_TARGET=
> +# File formats that will be enabled based on the selected
> +# target(s). These are chosen because they are required to
> +# compile one or more of the selected targets.
> +target_formats=
> +# If all targets were requested, this is all formats that should
> +# accompany them. These are just the ones required for compilation
> +# to succeed, not the formats suggested based on targets.
> +all_target_formats="coff xcoff"
>
> for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
> do
> if test "$targ_alias" = "all"; then
> all_targets=true
> + target_formats=$all_target_formats
> else
> # Canonicalize the secondary target names.
> result=`$ac_config_sub $targ_alias 2>/dev/null`
> @@ -31553,6 +31579,10 @@ fi
> # Note that WIN32APILIBS is set by GDB_AC_COMMON.
> WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
>
> +# Object files to be used when building with support for all file formats.
> +all_binary_format_obs="dbxread.o mipsread.o coffread.o coff-pe-read.o xcoffread.o"
> +
> +support_elf=no
> # Add ELF support to GDB, but only if BFD includes ELF support.
>
> OLD_CFLAGS=$CFLAGS
> @@ -31605,7 +31635,7 @@ $as_echo "$gdb_cv_var_elf" >&6; }
> LDFLAGS=$OLD_LDFLAGS
> LIBS=$OLD_LIBS
> if test "$gdb_cv_var_elf" = yes; then
> - CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o \
> + CONFIG_OBS="$CONFIG_OBS stap-probe.o dtrace-probe.o \
> gcore-elf.o elf-none-tdep.o"
>
> $as_echo "#define HAVE_ELF 1" >>confdefs.h
> @@ -31669,9 +31699,12 @@ if test "$ac_res" != no; then :
> fi
>
> fi
> + support_elf=yes
> + all_binary_format_obs="$all_binary_format_obs elfread.o"
> fi
>
> # Add macho support to GDB, but only if BFD includes it.
> +support_macho=no
>
> OLD_CFLAGS=$CFLAGS
> OLD_LDFLAGS=$LDFLAGS
> @@ -31723,9 +31756,49 @@ $as_echo "$gdb_cv_var_macho" >&6; }
> LDFLAGS=$OLD_LDFLAGS
> LIBS=$OLD_LIBS
> if test "$gdb_cv_var_macho" = yes; then
> - CONFIG_OBS="$CONFIG_OBS machoread.o"
> + support_macho=yes
> + all_binary_format_obs="$all_binary_format_obs machoread.o"
> +fi
> +
> +FORMAT_OBS=
> +
> +if test "$enable_binary_file_formats" != "all"; then
> + # Formats that are required by some requested target(s).
> + # Warn users that they are added, so no one is surprised.
> + for req in $target_formats; do
> + if ! echo "$enable_binary_file_formats" | grep -wq "$req"; then
> + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"$req is required to support one or more requested targets. Adding it\"" >&5
> +$as_echo "$as_me: WARNING: \"$req is required to support one or more requested targets. Adding it\"" >&2;}
> + enable_binary_file_formats="${enable_binary_file_formats},$req"
> + fi
> + done
> +
> +
> +cat >>confdefs.h <<_ACEOF
> +#define SUPPORTED_FORMATS "$enable_binary_file_formats"
> +_ACEOF
> +
> fi
>
> +enable_binary_file_formats=$(echo $enable_binary_file_formats | sed 's/,/ /g')
> +
> +for format in $enable_binary_file_formats
> +do
> + if test "$format" = "elf"; then
> + if test "$support_elf" != "yes"; then
> + as_fn_error but BFD does not support it." "\"elf support was requested" "$LINENO" 5;
> + fi
> + elif test "$format" = "macho"; then
> + if test "$support_macho" != "yes"; then
> + as_fn_error but BFD does not support it." "\"Mach-O support was requested" "$LINENO" 5;
> + fi
> + fi
> +
> + . ${srcdir}/configure.format
> +done
> +
> +
> +
> # Add any host-specific objects to GDB.
> CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
>
> diff --git a/gdb/configure.ac b/gdb/configure.ac
> index fb77e79e73b..c5e774962ce 100644
> --- a/gdb/configure.ac
> +++ b/gdb/configure.ac
> @@ -191,6 +191,15 @@ AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
> ;;
> esac])
>
> +AC_ARG_ENABLE(binary_file_formats,
> + AS_HELP_STRING([--enable-binary-file-formats=FILE_FORMATS],
> + [enable support for selected file formats (default 'all')]),
> +[case "${enableval}" in
> + yes | "") AC_MSG_ERROR(enable-formats option must specify file formats or 'all')
> + ;;
> + no) enable_binary_file_formats= ;;
> + *) enable_binary_file_formats=$enableval ;;
> +esac], [enable_binary_file_formats=all])
>
> BFD_64_BIT
>
> @@ -211,11 +220,20 @@ fi
> TARGET_OBS=
> all_targets=
> HAVE_NATIVE_GCORE_TARGET=
> +# File formats that will be enabled based on the selected
> +# target(s). These are chosen because they are required to
> +# compile one or more of the selected targets.
> +target_formats=
> +# If all targets were requested, this is all formats that should
> +# accompany them. These are just the ones required for compilation
> +# to succeed, not the formats suggested based on targets.
> +all_target_formats="coff xcoff"
>
> for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
> do
> if test "$targ_alias" = "all"; then
> all_targets=true
> + target_formats=$all_target_formats
> else
> # Canonicalize the secondary target names.
> result=`$ac_config_sub $targ_alias 2>/dev/null`
> @@ -1903,11 +1921,15 @@ fi
> # Note that WIN32APILIBS is set by GDB_AC_COMMON.
> WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
>
> +# Object files to be used when building with support for all file formats.
> +all_binary_format_obs="dbxread.o mipsread.o coffread.o coff-pe-read.o xcoffread.o"
> +
> +support_elf=no
> # Add ELF support to GDB, but only if BFD includes ELF support.
> GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
> [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
> if test "$gdb_cv_var_elf" = yes; then
> - CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o \
> + CONFIG_OBS="$CONFIG_OBS stap-probe.o dtrace-probe.o \
> gcore-elf.o elf-none-tdep.o"
> AC_DEFINE(HAVE_ELF, 1,
> [Define if ELF support should be included.])
> @@ -1915,15 +1937,54 @@ if test "$gdb_cv_var_elf" = yes; then
> if test "$plugins" = "yes"; then
> AC_SEARCH_LIBS(dlopen, dl)
> fi
> + support_elf=yes
> + all_binary_format_obs="$all_binary_format_obs elfread.o"
> fi
>
> # Add macho support to GDB, but only if BFD includes it.
> +support_macho=no
> GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
> [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
> if test "$gdb_cv_var_macho" = yes; then
> - CONFIG_OBS="$CONFIG_OBS machoread.o"
> + support_macho=yes
> + all_binary_format_obs="$all_binary_format_obs machoread.o"
> +fi
> +
> +FORMAT_OBS=
> +
> +if test "$enable_binary_file_formats" != "all"; then
> + # Formats that are required by some requested target(s).
> + # Warn users that they are added, so no one is surprised.
> + for req in $target_formats; do
> + if ! echo "$enable_binary_file_formats" | grep -wq "$req"; then
> + AC_MSG_WARN("$req is required to support one or more requested targets. Adding it")
> + enable_binary_file_formats="${enable_binary_file_formats},$req"
> + fi
> + done
> +
> + AC_DEFINE_UNQUOTED(SUPPORTED_FORMATS, "$enable_binary_file_formats",
> + Which file formats were requested at configure time. )
> fi
>
> +enable_binary_file_formats=$(echo $enable_binary_file_formats | sed 's/,/ /g')
> +
> +for format in $enable_binary_file_formats
> +do
> + if test "$format" = "elf"; then
> + if test "$support_elf" != "yes"; then
> + AC_MSG_ERROR("elf support was requested, but BFD does not support it.");
> + fi
> + elif test "$format" = "macho"; then
> + if test "$support_macho" != "yes"; then
> + AC_MSG_ERROR("Mach-O support was requested, but BFD does not support it.");
> + fi
> + fi
> +
> + . ${srcdir}/configure.format
> +done
> +
> +AC_SUBST(FORMAT_OBS)
> +
> # Add any host-specific objects to GDB.
> CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
>
> diff --git a/gdb/configure.format b/gdb/configure.format
> new file mode 100644
> index 00000000000..5ac86359037
> --- /dev/null
> +++ b/gdb/configure.format
> @@ -0,0 +1,51 @@
> +# Copyright (C) 2024-2025 Free Software Foundation, Inc.
> +#
> +# This file is part of GDB.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program. If not, see <http://www.gnu.org/licenses/>.
> +
> +# This file is used to decide which files need to be compiled to support
> +# the requested file formats
> +
> +case $format in
> + xcoff)
> + FORMAT_OBS="$FORMAT_OBS xcoffread.o"
> + ;;
> +
> + # Despite the naming convention implying coff-pe to be a separate
> + # reader, it is in fact just a helper for coffread;
> + coff)
> + FORMAT_OBS="$FORMAT_OBS coffread.o coff-pe-read.o"
> + ;;
> +
> + dbx)
> + FORMAT_OBS="$FORMAT_OBS dbxread.o"
> + ;;
> +
> + elf)
> + FORMAT_OBS="$FORMAT_OBS elfread.o"
> + ;;
> +
> + macho)
> + FORMAT_OBS="$FORMAT_OBS machoread.o"
> + ;;
> +
> + mips)
> + FORMAT_OBS="$FORMAT_OBS mipsread.o"
> + ;;
> +
> + all)
> + FORMAT_OBS="$all_binary_format_obs"
> + ;;
> +esac
> diff --git a/gdb/configure.tgt b/gdb/configure.tgt
> index 18a15c032c3..064deddc97b 100644
> --- a/gdb/configure.tgt
> +++ b/gdb/configure.tgt
> @@ -496,7 +496,7 @@ powerpc-*-openbsd*)
> ;;
> powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*)
> # Target: PowerPC running AIX
> - gdb_target_obs="rs6000-tdep.o rs6000-aix-tdep.o xcoffread.o \
> + gdb_target_obs="rs6000-tdep.o rs6000-aix-tdep.o \
> ppc-sysv-tdep.o solib-aix.o \
> ravenscar-thread.o ppc-ravenscar-thread.o"
> ;;
> @@ -512,8 +512,8 @@ powerpc*-*-linux*)
> powerpc-*-lynx*178)
> # Target: PowerPC running Lynx178.
> gdb_target_obs="rs6000-tdep.o rs6000-lynx178-tdep.o \
> - xcoffread.o ppc-sysv-tdep.o \
> - ravenscar-thread.o ppc-ravenscar-thread.o"
> + ppc-sysv-tdep.o ravenscar-thread.o \
> + ppc-ravenscar-thread.o"
> ;;
> powerpc*-*-*)
> # Target: PowerPC running eabi
> @@ -817,3 +817,17 @@ for t in x ${gdb_target_obs}; do
> gdb_have_gcore=true
> fi
> done
> +
> +# Decide which file formats are absolutely required based on
> +# the requested targets. Warn later that they are added, in
> +# case the user didn't manually request them, or all readers.
> +# It's fine to add the same format multiple times since the
> +# loop that reads the options to FORMAT_OBS will ensure that
> +# they are only added once.
> +for i in $gdb_target_obs; do
> + case "${i}" in
> + *"windows-tdep.o" ) target_formats="${target_formats} coff";;
> + "rs6000-aix-tdep.o" ) target_formats="${target_formats} xcoff";;
> + "rs6000-lynx178-tdep.o" ) target_formats="${target_formats} xcoff";;
> + esac
> +done
> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 95a881e9dff..26434183769 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -41258,6 +41258,14 @@ Configure @value{GDBN} for cross-debugging programs running on the
> specified list of targets. The special value @samp{all} configures
> @value{GDBN} for debugging programs running on any target it supports.
>
> +@item --enable-binary-file-formats=@r{[}@var{format}@r{]}@dots{}
> +@itemx --enable-binary-file-formats=all
> +Configure @value{GDBN} to support certain binary file formats. If a
> +format is the main (or only) file format for a given target, the
> +configure script may add support to it anyway, and warn the user.
> +If not given, all file formats that @value{GDBN} supports are compiled
> +in.
> +
> @item --with-gdb-datadir=@var{path}
> Set the @value{GDBN}-specific data directory. @value{GDBN} will look
> here for certain supporting files or scripts. This defaults to the
> diff --git a/gdb/top.c b/gdb/top.c
> index b2575bc2b58..9342085b3a9 100644
> --- a/gdb/top.c
> +++ b/gdb/top.c
> @@ -1595,6 +1595,11 @@ This GDB was configured as follows:\n\
> --with-system-gdbinit-dir=%s%s\n\
> "), SYSTEM_GDBINIT_DIR, SYSTEM_GDBINIT_DIR_RELOCATABLE ? " (relocatable)" : "");
>
> +#ifdef SUPPORTED_FORMATS
> + gdb_printf (stream, _("\
> + --enable-binary-file-formats=%s\n"), SUPPORTED_FORMATS);
> +#endif
> +
> /* We assume "relocatable" will be printed at least once, thus we always
> print this text. It's a reasonably safe assumption for now. */
> gdb_printf (stream, _("\n\
next prev parent reply other threads:[~2025-03-27 20:22 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-07 11:58 [PATCH " Guinevere Larsen
2025-03-07 12:09 ` Eli Zaretskii
2025-03-07 12:49 ` Guinevere Larsen
2025-03-07 13:03 ` Eli Zaretskii
2025-03-27 20:21 ` Guinevere Larsen [this message]
2025-04-03 17:35 ` Tom Tromey
2025-04-07 17:48 ` Guinevere Larsen
2025-04-07 19:23 ` Tom Tromey
2025-04-08 13:47 ` [PATCH v4] " Guinevere Larsen
2025-04-08 14:06 ` Andreas Schwab
2025-04-08 14:24 ` Guinevere Larsen
2025-04-08 14:44 ` Andreas Schwab
2025-05-26 17:11 ` [PATCH v5 1/1] " Guinevere Larsen
2025-07-07 20:16 ` [PATCH v6] " Guinevere Larsen
2025-07-31 18:42 ` [PING][PATCH " Guinevere Larsen
2025-08-05 16:03 ` [PATCH " Simon Marchi
2025-08-05 19:06 ` Eli Zaretskii
2025-08-05 19:36 ` Simon Marchi
2025-08-05 20:07 ` Guinevere Larsen
2025-08-06 13:53 ` Guinevere Larsen
2025-08-06 14:17 ` [PATCH v7 1/1] gdb, configure: Add enable-binary-file-format " Guinevere Larsen
2025-08-14 15:39 ` Tom Tromey
2025-08-14 16:23 ` Guinevere Larsen
2025-05-27 11:32 ` [PATCH v3] gdb, configure: Add disable-formats " Pedro Alves
2025-05-27 16:26 ` Guinevere Larsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5dc0d2cc-51f6-4265-8e5b-bdb964a20ca3@redhat.com \
--to=guinevere@redhat.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox