Patchwork [RFA] Update gdb's configure instructions

login
register
mail settings
Submitter Tom Tromey
Date Sept. 27, 2018, 10:20 p.m.
Message ID <87y3bminvq.fsf@tromey.com>
Download mbox | patch
Permalink /patch/29568/
State New
Headers show

Comments

Tom Tromey - Sept. 27, 2018, 10:20 p.m.
>>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:

Eli> How about replacing PROBLEMS with a file that just points people to
Eli> the GDB Bugzilla, and perhaps tells how to search Bugzilla for GDB
Eli> problems that are still not solved in version X.Y.Z of GDB?

[...]

Thanks for the review.

I think this version addresses all the comments.

I hope so anyway, I tend to lose patience editing this text.  Some of of
what remains could probably still be removed and replaced with a
reference to some Autoconf documentation.

There are still some undocumented configure options.  Some are truly
obscure and for some (the babeltrace and ipt libraries) I didn't really
know what to write.

Let me know what you think.  Updating these docs is the main blocker to
the ubsan series, so I'd like to do it, even if it's a grind.

In the future I plan to be better about requesting documentation updates
when configure options are added.

Tom

commit 0d1b8c6be3f455209e158e728ef9d6068a4dec61
Author: Tom Tromey <tom@tromey.com>
Date:   Thu Sep 13 22:24:07 2018 -0600

    Update gdb's configure instructions
    
    gdb's README and configure instructions in the manual are quite out of
    date.  They mention options that haven't existed for many years, among
    other things.
    
    This patch attempts to modernize the instructions somewhat.  It is not
    exhaustive, just an improvement -- more could be done.  Perhaps even a
    couple of the nodes should simply be removed and replaced by
    references to the Autoconf manual.
    
    The README file seems to have been generated from the Texinfo at some
    point in the past.  I did not continue this, but instead edited it
    separately.
    
    gdb/ChangeLog
    2018-09-13  Tom Tromey  <tom@tromey.com>
    
            * PROBLEMS: Rewrite.
            * README: Update.
    
    gdb/doc/ChangeLog
    2018-09-13  Tom Tromey  <tom@tromey.com>
    
            * gdb.texinfo (Requirements): Mention C++, GNU make.
            (Requirements): Sort the table.  Add more libraries.
            (Running Configure): Remove obsolete text.
            (Separate Objdir): Likewise.
            (Configure Options): Likewise.
Eli Zaretskii - Sept. 28, 2018, 7:40 a.m.
> From: Tom Tromey <tom@tromey.com>
> Cc: Tom Tromey <tom@tromey.com>,  gdb-patches@sourceware.org
> Date: Thu, 27 Sep 2018 16:20:09 -0600
> 
> I think this version addresses all the comments.

Thanks.  This LGTM, modulo 2 nits below.

> I hope so anyway, I tend to lose patience editing this text.

I know how you feel, thanks for doing this.

> +`--with-lzma'
> +     Build GDB with LZMA, a compression library.  (Done by default if
> +     liblzma is installed and found at configure time.)  LZMA is used
> +     by GDB's "mini debuginfo" feature, which is only useful on
> +     platforms using the ELF object file format..  If your host does
                                                  ^^
A typo.

> +`--with-python[=PYTHON]'
>       Build GDB with Python scripting support.  (Done by default if
>       libpython is present and found at configure time.)  Python makes
>       GDB scripting much more powerful than the restricted CLI
>       scripting language.  If your host does not have Python installed,
> -     you can find it on http://www.python.org/download/.  The oldest
> +     you can find it on `http://www.python.org/download/'.  The oldest
>       version of Python supported by GDB is 2.4.  The optional argument
> -     PATH says where to find the Python headers and libraries; the
> -     configure script will look in PATH/include for headers and in
> -     PATH/lib for the libraries.
> +     PYTHON names a Python executable, which will be queried to find
> +     the Python headers and libraries.

Did this change since GDB 8.2?  Because when I built GDB 8.2, the
argument to --with-python was the top-level directory of the Python
installation on my build system.
Tom Tromey - Sept. 28, 2018, 8:01 p.m.
>>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:

Eli> Did this change since GDB 8.2?  Because when I built GDB 8.2, the
Eli> argument to --with-python was the top-level directory of the Python
Eli> installation on my build system.

It can be either, it turns out.  How's this text?

`--with-python[=PYTHON]'
     Build GDB with Python scripting support.  (Done by default if
     libpython is present and found at configure time.)  Python makes
     GDB scripting much more powerful than the restricted CLI
     scripting language.  If your host does not have Python installed,
     you can find it on `http://www.python.org/download/'.  The oldest
     version of Python supported by GDB is 2.4.  The optional argument
     PYTHON is used to find the Python headers and libraries.  It can
     be either the name of a Python executable, or the name of the
     directory in which Python is installed.

and in gdb.texinfo:

    @item Python
    @value{GDBN} can be scripted using Python language.  @xref{Python}.
    By default, @value{GDBN} will be compiled if the Python libraries are
    installed and are found by @file{configure}.  You can use the
    @code{--with-python} option to request Python, and pass either the
    file name of the relevant @code{python} executable, or the name of the
    directory in which Python is installed, to choose a particular
    installation of Python.

Tom
Eli Zaretskii - Sept. 28, 2018, 9:17 p.m.
> From: Tom Tromey <tom@tromey.com>
> Cc: Tom Tromey <tom@tromey.com>,  gdb-patches@sourceware.org
> Date: Fri, 28 Sep 2018 14:01:33 -0600
> 
> >>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:
> 
> Eli> Did this change since GDB 8.2?  Because when I built GDB 8.2, the
> Eli> argument to --with-python was the top-level directory of the Python
> Eli> installation on my build system.
> 
> It can be either, it turns out.  How's this text?

It's fine, thanks.

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8cf9a6c9ca..7ebe9960b7 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@ 
+2018-09-13  Tom Tromey  <tom@tromey.com>
+
+	* PROBLEMS: Rewrite.
+	* README: Update.
+
 2018-09-26  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* riscv-tdep.c (riscv_insn::decode): Decode c.lui.
diff --git a/gdb/PROBLEMS b/gdb/PROBLEMS
index 974f4f0108..4e1327f57c 100644
--- a/gdb/PROBLEMS
+++ b/gdb/PROBLEMS
@@ -1,6 +1,5 @@ 
+Known problems in GDB can be found by searching GDB's Bugzilla, here:
 
-			Known problems in GDB 7.2.50
+    https://sourceware.org/bugzilla/query.cgi?product=gdb
 
-		See also: http://www.gnu.org/software/gdb/bugs/
-
-None worth mentioning here.
+For help on searching, click the "Help" link at the top of the page.
diff --git a/gdb/README b/gdb/README
index e43887ffcd..8e5f110eb2 100644
--- a/gdb/README
+++ b/gdb/README
@@ -7,11 +7,8 @@  A summary of new features is in the file `gdb/NEWS'.
 Check the GDB home page at http://www.gnu.org/software/gdb/ for up to
 date release information, mailing list links and archives, etc.
 
-The file `gdb/PROBLEMS' contains information on problems identified
-late in the release cycle.  GDB's bug tracking data base at
-http://www.gnu.org/software/gdb/bugs/ contains a more complete list of
-bugs.
-
+GDB's bug tracking data base can be found at
+http://www.gnu.org/software/gdb/bugs/
 
 Unpacking and Installation -- quick overview
 ==========================
@@ -37,9 +34,8 @@  source directory called `gdb-VERSION'.
 You can build GDB right in the source directory:
 
       cd gdb-VERSION
-      ./configure
-      make
-      cp gdb/gdb /usr/local/bin/gdb	(or wherever you want)
+      ./configure --prefix=/usr/local   (or wherever you want)
+      make all install
 
 However, we recommend that an empty directory be used instead.
 This way you do not clutter your source tree with binary files
@@ -50,9 +46,8 @@  You can build GDB in any empty build directory:
 
       mkdir build
       cd build
-      <full path to your sources>/gdb-VERSION/configure
-      make
-      cp gdb/gdb /usr/local/bin/gdb	(or wherever you want)
+      <full path to your sources>/gdb-VERSION/configure [etc...]
+      make all install
 
 (Building GDB with DJGPP tools for MS-DOS/MS-Windows is slightly
 different; see the file gdb-VERSION/gdb/config/djgpp/README for details.)
@@ -77,25 +72,26 @@  such as:
    If you get other compiler errors during this stage, see the `Reporting
 Bugs' section below; there are a few known problems.
 
-   GDB requires an ISO C (ANSI C) compiler.  If you do not have an ISO
-C compiler for your system, you may be able to download and install
+   GDB's `configure' script has many options to enable or disable
+different features or dependencies.  These options are not generally
+known to the top-level `configure', so if you want to see a complete
+list of options, invoke the subdirectory `configure', like:
+
+      /berman/migchain/source/gdb-VERSION/gdb/configure --help
+
+   (Take note of how this differs from the invocation used to actually
+configure the build tree.)
+
+   GDB requires a C++11 compiler.  If you do not have a
+C++11 compiler for your system, you may be able to download and install
 the GNU CC compiler.  It is available via anonymous FTP from the
 directory `ftp://ftp.gnu.org/pub/gnu/gcc'.  GDB also requires an ISO
 C standard library.  The GDB remote server, GDBserver, builds with some
 non-ISO standard libraries - e.g. for Windows CE.
 
-   GDB uses Expat, an XML parsing library, to implement some target-specific
-features.  Expat will be linked in if it is available at build time, or
-those features will be disabled.  The latest version of Expat should be
-available from `http://expat.sourceforge.net'.
-
-   GDB uses GNU MPFR, a library for multiple-precision floating-point
-computation with correct rounding, to emulate target floating-point
-arithmetic during expression evaluation when the target uses different
-floating-point formats than the host.  MPFR will be linked in if it is
-available at build time.  If GNU MPFR it is not available, GDB will fall
-back to using host floating-point arithmetic.  The latest version of
-GNU MPFR should be available from `http://www.mpfr.org'.
+   GDB can optionally be built against various external libraries.
+These dependencies are described below in the "`configure options"
+section of this README.
 
    GDB can be used as a cross-debugger, running on a machine of one
 type while debugging a program running on a machine of another type.
@@ -348,20 +344,21 @@  you can use it to test your guesses on abbreviations--for example:
 
    Here is a summary of the `configure' options and arguments that are
 most often useful for building GDB.  `configure' also has several other
-options not listed here.  *note : (configure.info)What Configure Does,
-for a full explanation of `configure'.
+options not listed here.  There are many options to gdb's `configure'
+script, some of which are only useful in special situation.
+*note : (autoconf.info)Running configure scripts, for a full
+explanation of `configure'.
 
      configure [--help]
                [--prefix=DIR]
                [--srcdir=PATH]
-               [--norecursion] [--rm]
-	       [--enable-build-warnings]
                [--target=TARGET]
 	       [--host=HOST]
 	       [HOST]
 
 You may introduce options with a single `-' rather than `--' if you
-prefer; but you may abbreviate option names if you use `--'.
+prefer; but you may abbreviate option names if you use `--'.  Some
+more obscure GDB `configure' options are not listed here.
 
 `--help'
      Display a quick summary of how to invoke `configure'.
@@ -392,31 +389,6 @@  prefer; but you may abbreviate option names if you use `--'.
      Same as `--host=HOST'.  If you omit this, GDB will guess; it's
      quite accurate.
 
-`--norecursion'
-     Configure only the directory level where `configure' is executed;
-     do not propagate configuration to subdirectories.
-
-`--rm'
-     Remove the configuration that the other arguments specify.
-
-`--enable-build-warnings'
-     When building the GDB sources, ask the compiler to warn about any
-     code which looks even vaguely suspicious.  You should only using
-     this feature if you're compiling with GNU CC.  It passes the
-     following flags:
-	-Wimplicit
-	-Wreturn-type
-	-Wcomment
-	-Wtrigraphs
-	-Wformat
-	-Wparentheses
-	-Wpointer-arith
-
-`--enable-werror'
-     Treat compiler warnings as werrors.  Use this only with GCC.  It
-     adds the -Werror flag to the compiler, which will fail the
-     compilation if the compiler outputs any warning messages.
-
 `--target=TARGET'
      Configure GDB for cross-debugging programs running on the specified
      TARGET.  Without this option, GDB is configured to debug programs
@@ -425,6 +397,12 @@  prefer; but you may abbreviate option names if you use `--'.
      There is no convenient way to generate a list of all available
      targets.
 
+`--enable-targets=TARGET,TARGET,...'
+`--enable-targets=all`
+     Configure GDB for cross-debugging programs running on the
+     specified list of targets.  The special value `all' configures
+     GDB for debugging programs running on any target it supports.
+
 `--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'
@@ -450,58 +428,82 @@  prefer; but you may abbreviate option names if you use `--'.
      Requires a curses library (ncurses and cursesX are also
      supported).
 
-`--enable-gdbtk'
-     Build GDB with the gdbtk GUI interface.  Requires TCL/Tk to be
-     installed.
+`--with-curses'
+     Use the curses library instead of the termcap library, for
+     text-mode terminal operations.
 
 `--with-libunwind-ia64'
      Use the libunwind library for unwinding function call stack on ia64
      target platforms.
      See http://www.nongnu.org/libunwind/index.html for details.
 
-`--with-curses'
-     Use the curses library instead of the termcap library, for
-     text-mode terminal operations.
-
-`--enable-profiling' Enable profiling of GDB itself.  Necessary if you
-     want to use the "maint set profile" command for profiling GDB.
-     Requires the functions `monstartup' and `_mcleanup' to be present
-     in the standard C library used to build GDB, and also requires a
-     compiler that supports the `-pg' option.
-
 `--with-system-readline'
      Use the readline library installed on the host, rather than the
      library supplied as part of GDB tarball.
 
+`--with-system-zlib
+     Use the zlib library installed on the host, rather than the
+     library supplied as part of GDB tarball.
+
 `--with-expat'
-     Build GDB with the libexpat library.  (Done by default if
-     libexpat is installed and found at configure time.)  This library
-     is used to read XML files supplied with GDB.  If it is
-     unavailable, some features, such as remote protocol memory maps,
-     target descriptions, and shared library lists, that are based on
-     XML files, will not be available in GDB.  If your host does not
-     have libexpat installed, you can  get the latest version from
-     http://expat.sourceforge.net.
+     Build GDB with Expat, a library for XML parsing.  (Done by
+     default if libexpat is installed and found at configure time.)
+     This library is used to read XML files supplied with GDB.  If it
+     is unavailable, some features, such as remote protocol memory
+     maps, target descriptions, and shared library lists, that are
+     based on XML files, will not be available in GDB.  If your host
+     does not have libexpat installed, you can get the latest version
+     from `http://expat.sourceforge.net'.
+
+`--with-libiconv-prefix[=DIR]'
+     Build GDB with GNU libiconv, a character set encoding conversion
+     library.  This is not done by default, as on GNU systems the
+     `iconv' that is built in to the C library is sufficient.  If your
+     host does not have a working `iconv', you can get the latest
+     version of GNU iconv from `https://www.gnu.org/software/libiconv/'.
+
+     GDB's build system also supports building GNU libiconv as part of
+     the overall build.  See the GDB manual instructions on how to do
+     this.
+
+`--with-lzma'
+     Build GDB with LZMA, a compression library.  (Done by default if
+     liblzma is installed and found at configure time.)  LZMA is used
+     by GDB's "mini debuginfo" feature, which is only useful on
+     platforms using the ELF object file format..  If your host does
+     not have liblzma installed, you can get the latest version from
+     `https://tukaani.org/xz/'.
 
 `--with-mpfr'
-     Build GDB with the GNU MPFR library.  (Done by default if
-     GNU MPFR is installed and found at configure time.)  This library
-     is used to emulate target floating-point arithmetic during expression
-     evaluation when the target uses different floating-point formats than
-     the host.  If GNU MPFR is not available, GDB will fall back to using
-     host floating-point arithmetic.  If your host does not have GNU MPFR
-     installed, you can get the latest version from http://www.mpfr.org.
-
-`--with-python[=PATH]'
+     Build GDB with GNU MPFR, a library for multiple-precision
+     floating-point computation with correct rounding.  (Done by
+     default if GNU MPFR is installed and found at configure time.)
+     This library is used to emulate target floating-point arithmetic
+     during expression evaluation when the target uses different
+     floating-point formats than the host.  If GNU MPFR is not
+     available, GDB will fall back to using host floating-point
+     arithmetic.  If your host does not have GNU MPFR installed, you
+     can get the latest version from `http://www.mpfr.org'.
+
+`--with-python[=PYTHON]'
      Build GDB with Python scripting support.  (Done by default if
      libpython is present and found at configure time.)  Python makes
      GDB scripting much more powerful than the restricted CLI
      scripting language.  If your host does not have Python installed,
-     you can find it on http://www.python.org/download/.  The oldest
+     you can find it on `http://www.python.org/download/'.  The oldest
      version of Python supported by GDB is 2.4.  The optional argument
-     PATH says where to find the Python headers and libraries; the
-     configure script will look in PATH/include for headers and in
-     PATH/lib for the libraries.
+     PYTHON names a Python executable, which will be queried to find
+     the Python headers and libraries.
+
+`--with-guile[=GUILE]'
+     Build GDB with GNU Guile scripting support.  (Done by default if
+     libguile is present and found at configure time.)  If your host
+     does not have Guile installed, you can find it at
+     `https://www.gnu.org/software/guile/'.  The optional argument
+     GUILE can be a version number, which will cause `configure' to
+     try to use that version of Guile; or the file name of a
+     `pkg-config' executable, which will be queried to find the
+     information needed to compile and link against Guile.
 
 `--without-included-regex'
      Don't use the regex library included with GDB (as part of the
@@ -524,9 +526,19 @@  prefer; but you may abbreviate option names if you use `--'.
      after being built, the location of the system-wide init file will
      be adjusted accordingly. 
 
+`--enable-build-warnings'
+     When building the GDB sources, ask the compiler to warn about any
+     code which looks even vaguely suspicious.  It passes many
+     different warning flags, depending on the exact version of the
+     compiler you are using.
+
+`--enable-werror'
+     Treat compiler warnings as werrors.  It adds the -Werror flag to
+     the compiler, which will fail the compilation if the compiler
+     outputs any warning messages.
+
 `configure' accepts other options, for compatibility with configuring
-other GNU tools recursively; but these are the only options that affect
-GDB or its supporting libraries.
+other GNU tools recursively.
 
 
 Remote debugging
@@ -541,18 +553,12 @@  with the remote.c stub over a serial line.
 allows remote debugging for Unix applications.  GDBserver is only
 supported for some native configurations, including Sun 3, Sun 4, and
 Linux.
-The file gdb/gdbserver/README includes further notes on GDBserver; in
+
+   The file gdb/gdbserver/README includes further notes on GDBserver; in
 particular, it explains how to build GDBserver for cross-debugging
 (where GDBserver runs on the target machine, which is of a different
 architecture than the host machine running GDB).
 
-   There are a number of remote interfaces for talking to existing ROM
-monitors and other hardware:
-
-	remote-mips.c	 MIPS remote debugging protocol
-	remote-sds.c	 PowerPC SDS monitor
-	remote-sim.c	 Generalized simulator protocol
-
 
 Reporting Bugs in GDB
 =====================
@@ -567,11 +573,13 @@  address "bug-gdb@gnu.org".
 
    When submitting a bug, please include the GDB version number, and
 how you configured it (e.g., "sun4" or "mach386 host,
-i586-intel-synopsys target").  Since GDB now supports so many
+i586-intel-synopsys target").  Since GDB supports so many
 different configurations, it is important that you be precise about
-this.  If at all possible, you should include the actual banner
-that GDB prints when it starts up, or failing that, the actual
-configure command that you used when configuring GDB.
+this.  The simplest way to do this is to include the output from these
+commands:
+
+      % gdb --version
+      % gdb --config
 
    For more information on how/whether to report bugs, see the
 Reporting Bugs chapter of the GDB manual (gdb/doc/gdb.texinfo).
@@ -583,7 +591,7 @@  Graphical interface to GDB -- X Windows, MS Windows
    Several graphical interfaces to GDB are available.  You should
 check:
 
-	http://www.gnu.org/software/gdb/links/
+	https://sourceware.org/gdb/wiki/GDB%20Front%20Ends
 
 for an up-to-date list.
 
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 4285a4d8bb..e57fd0372b 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,11 @@ 
+2018-09-13  Tom Tromey  <tom@tromey.com>
+
+	* gdb.texinfo (Requirements): Mention C++, GNU make.
+	(Requirements): Sort the table.  Add more libraries.
+	(Running Configure): Remove obsolete text.
+	(Separate Objdir): Likewise.
+	(Configure Options): Likewise.
+
 2018-09-23  Tom Tromey  <tom@tromey.com>
 
 	PR python/18852:
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index b5b6089153..af9084e031 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -35165,10 +35165,13 @@  Other packages will be used only if they are found.
 
 @heading Tools/Packages Necessary for Building @value{GDBN}
 @table @asis
-@item ISO C90 compiler
-@value{GDBN} is written in ISO C90.  It should be buildable with any
-working C90 compiler, e.g.@: GCC.
+@item C@t{++}11 compiler
+@value{GDBN} is written in C@t{++}11.  It should be buildable with any
+recent C@t{++}11 compiler, e.g.@: GCC.
 
+@item GNU make
+@value{GDBN}'s build system relies on features only found in the GNU
+make program.  Other variants of @code{make} will not work.
 @end table
 
 @heading Tools/Packages Optional for Building @value{GDBN}
@@ -35201,6 +35204,51 @@  Branch trace (@pxref{Branch Trace Format},
 @pxref{Branch Trace Configuration Format})
 @end itemize
 
+@item Guile
+@value{GDBN} can be scripted using GNU Guile.  @xref{Guile}.  By
+default, @value{GDBN} will be compiled if the Guile libraries are
+installed and are found by @file{configure}.  You can use the
+@code{--with-guile} option to request Guile, and pass either the Guile
+version number or the file name of the relevant @code{pkg-config}
+program to choose a particular version of Guile.
+
+@item iconv
+@value{GDBN}'s features related to character sets (@pxref{Character
+Sets}) require a functioning @code{iconv} implementation.  If you are
+on a GNU system, then this is provided by the GNU C Library.  Some
+other systems also provide a working @code{iconv}.
+
+If @value{GDBN} is using the @code{iconv} program which is installed
+in a non-standard place, you will need to tell @value{GDBN} where to
+find it.  This is done with @option{--with-iconv-bin} which specifies
+the directory that contains the @code{iconv} program.  This program is
+run in order to make a list of the available character sets.
+
+On systems without @code{iconv}, you can install GNU Libiconv.  If
+Libiconv is installed in a standard place, @value{GDBN} will
+automatically use it if it is needed.  If you have previously
+installed Libiconv in a non-standard place, you can use the
+@option{--with-libiconv-prefix} option to @file{configure}.
+
+@value{GDBN}'s top-level @file{configure} and @file{Makefile} will
+arrange to build Libiconv if a directory named @file{libiconv} appears
+in the top-most source directory.  If Libiconv is built this way, and
+if the operating system does not provide a suitable @code{iconv}
+implementation, then the just-built library will automatically be used
+by @value{GDBN}.  One easy way to set this up is to download GNU
+Libiconv, unpack it inside the top-level directory of the @value{GDBN}
+source tree, and then rename the directory holding the Libiconv source
+code to @samp{libiconv}.
+
+@item lzma
+@value{GDBN} can support debugging sections that are compressed with
+the LZMA library.  @xref{MiniDebugInfo}.  If this library is not
+included with your operating system, you can find it in the xz package
+at @url{http://tukaani.org/xz/}.  If the LZMA library is available in
+the usual place, then the @file{configure} script will use it
+automatically.  If it is installed in an unusual path, you can use the
+@option{--with-lzma-prefix} option to specify its location.
+
 @item MPFR
 @anchor{MPFR}
 @value{GDBN} can use the GNU MPFR multiple-precision floating-point
@@ -35216,6 +35264,14 @@  expression evaluation when the target uses different floating-point
 formats than the host.  If GNU MPFR it is not available, @value{GDBN}
 will fall back to using host floating-point arithmetic.
 
+@item Python
+@value{GDBN} can be scripted using Python language.  @xref{Python}.
+By default, @value{GDBN} will be compiled if the Python libraries are
+installed and are found by @file{configure}.  You can use the
+@code{--with-python} option to request Python, and pass the file name
+of the relevant @code{python} executable to choose a particular
+installation of Python.
+
 @item zlib
 @cindex compressed debug sections 
 @value{GDBN} will use the @samp{zlib} library, if available, to read
@@ -35227,30 +35283,6 @@  information in such binaries.
 The @samp{zlib} library is likely included with your operating system
 distribution; if it is not, you can get the latest version from
 @url{http://zlib.net}.
-
-@item iconv
-@value{GDBN}'s features related to character sets (@pxref{Character
-Sets}) require a functioning @code{iconv} implementation.  If you are
-on a GNU system, then this is provided by the GNU C Library.  Some
-other systems also provide a working @code{iconv}.
-
-If @value{GDBN} is using the @code{iconv} program which is installed
-in a non-standard place, you will need to tell @value{GDBN} where to find it.
-This is done with @option{--with-iconv-bin} which specifies the
-directory that contains the @code{iconv} program.
-
-On systems without @code{iconv}, you can install GNU Libiconv.  If you
-have previously installed Libiconv, you can use the
-@option{--with-libiconv-prefix} option to configure.
-
-@value{GDBN}'s top-level @file{configure} and @file{Makefile} will
-arrange to build Libiconv if a directory named @file{libiconv} appears
-in the top-most source directory.  If Libiconv is built this way, and
-if the operating system does not provide a suitable @code{iconv}
-implementation, then the just-built library will automatically be used
-by @value{GDBN}.  One easy way to set this up is to download GNU
-Libiconv, unpack it, and then rename the directory holding the
-Libiconv source code to @samp{libiconv}.
 @end table
 
 @node Running Configure
@@ -35294,14 +35326,10 @@  source for the library of opcode tables and disassemblers
 
 @item gdb-@value{GDBVN}/readline
 source for the @sc{gnu} command-line interface
-
-@item gdb-@value{GDBVN}/glob
-source for the @sc{gnu} filename pattern-matching subroutine
-
-@item gdb-@value{GDBVN}/mmalloc
-source for the @sc{gnu} memory-mapped malloc package
 @end table
 
+There may be other subdirectories as well.
+
 The simplest way to configure and build @value{GDBN} is to run @file{configure}
 from the @file{gdb-@var{version-number}} source directory, which in
 this example is the @file{gdb-@value{GDBVN}} directory.
@@ -35315,20 +35343,14 @@  For example:
 
 @smallexample
 cd gdb-@value{GDBVN}
-./configure @var{host}
+./configure
 make
 @end smallexample
 
-@noindent
-where @var{host} is an identifier such as @samp{sun4} or
-@samp{decstation}, that identifies the platform where @value{GDBN} will run.
-(You can often leave off @var{host}; @file{configure} tries to guess the
-correct value by examining your system.)
-
-Running @samp{configure @var{host}} and then running @code{make} builds the
-@file{bfd}, @file{readline}, @file{mmalloc}, and @file{libiberty}
-libraries, then @code{gdb} itself.  The configured source files, and the
-binaries, are left in the corresponding source directories.
+Running @samp{configure} and then running @code{make} builds the
+included supporting libraries, then @code{gdb} itself.  The configured
+source files, and the binaries, are left in the corresponding source
+directories.
 
 @need 750
 @file{configure} is a Bourne-shell (@code{/bin/sh}) script; if your
@@ -35336,16 +35358,9 @@  system does not recognize this automatically when you run a different
 shell, you may need to run @code{sh} on it explicitly:
 
 @smallexample
-sh configure @var{host}
+sh configure
 @end smallexample
 
-If you run @file{configure} from a directory that contains source
-directories for multiple libraries or programs, such as the
-@file{gdb-@value{GDBVN}} source directory for version @value{GDBVN},
-@file{configure}
-creates configuration files for every directory level underneath (unless
-you tell it not to, with the @samp{--norecursion} option).
-
 You should run the @file{configure} script from the top directory in the
 source tree, the @file{gdb-@var{version-number}} directory.  If you run
 @file{configure} from one of the subdirectories, you will configure only
@@ -35356,11 +35371,9 @@  configuration of @file{bfd}, @file{readline}, and other sibling
 directories of the @file{gdb} subdirectory.  This leads to build errors
 about missing include files such as @file{bfd/bfd.h}.
 
-You can install @code{@value{GDBP}} anywhere; it has no hardwired paths.
-However, you should make sure that the shell on your path (named by
-the @samp{SHELL} environment variable) is publicly readable.  Remember
-that @value{GDBN} uses the shell to start your program---some systems refuse to
-let @value{GDBN} debug child processes whose programs are not readable.
+You can install @code{@value{GDBN}} anywhere.  The best way to do this
+is to pass the @code{--prefix} option to @code{configure}, and then
+install it with @code{make install}.
 
 @node Separate Objdir
 @section Compiling @value{GDBN} in Another Directory
@@ -35389,7 +35402,7 @@  separate directory for a Sun 4 like this:
 cd gdb-@value{GDBVN}
 mkdir ../gdb-sun4
 cd ../gdb-sun4
-../gdb-@value{GDBVN}/configure sun4
+../gdb-@value{GDBVN}/configure
 make
 @end group
 @end smallexample
@@ -35475,18 +35488,17 @@  directory (@file{gdb-@value{GDBVN}}, for version @value{GDBVN}).
 @section @file{configure} Options
 
 Here is a summary of the @file{configure} options and arguments that
-are most often useful for building @value{GDBN}.  @file{configure} also has
-several other options not listed here.  @inforef{What Configure
-Does,,configure.info}, for a full explanation of @file{configure}.
+are most often useful for building @value{GDBN}.  @file{configure}
+also has several other options not listed here.  @inforef{Running
+configure scripts,,autoconf.info}, for a full
+explanation of @file{configure}.
 
 @smallexample
 configure @r{[}--help@r{]}
           @r{[}--prefix=@var{dir}@r{]}
           @r{[}--exec-prefix=@var{dir}@r{]}
           @r{[}--srcdir=@var{dirname}@r{]}
-          @r{[}--norecursion@r{]} @r{[}--rm@r{]}
           @r{[}--target=@var{target}@r{]}
-          @var{host}
 @end smallexample
 
 @noindent
@@ -35509,8 +35521,6 @@  Configure the source to install programs under directory
 @c avoid splitting the warning from the explanation:
 @need 2000
 @item --srcdir=@var{dirname}
-@strong{Warning: using this option requires @sc{gnu} @code{make}, or another
-@code{make} that implements the @code{VPATH} feature.}@*
 Use this option to make configurations in directories separate from the
 @value{GDBN} source directories.  Among other things, you can use this to
 build (or maintain) several configurations simultaneously, in separate
@@ -35520,21 +35530,12 @@  directory @var{dirname}.  @file{configure} creates directories under
 the working directory in parallel to the source directories below
 @var{dirname}.
 
-@item --norecursion
-Configure only the directory level where @file{configure} is executed; do not
-propagate configuration to subdirectories.
-
 @item --target=@var{target}
 Configure @value{GDBN} for cross-debugging programs running on the specified
 @var{target}.  Without this option, @value{GDBN} is configured to debug
 programs that run on the same machine (@var{host}) as @value{GDBN} itself.
 
 There is no convenient way to generate a list of all available targets.
-
-@item @var{host} @dots{}
-Configure @value{GDBN} to run on the specified @var{host}.
-
-There is no convenient way to generate a list of all available hosts.
 @end table
 
 There are many other options available as well, but they are generally