aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-09-13 22:24:07 -0600
committerTom Tromey <tom@tromey.com>2018-09-29 07:07:33 -0600
commit7f0bd4202c239b44b22645b9ae31fc0eeade1da3 (patch)
treecf6075962036f6d18f04c60b8a3659ce93a7d7af /gdb/doc
parent6424bdfcfc3af751531b927ad3549916d98d8763 (diff)
downloadgdb-7f0bd4202c239b44b22645b9ae31fc0eeade1da3.zip
gdb-7f0bd4202c239b44b22645b9ae31fc0eeade1da3.tar.gz
gdb-7f0bd4202c239b44b22645b9ae31fc0eeade1da3.tar.bz2
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-29 Tom Tromey <tom@tromey.com> * PROBLEMS: Rewrite. * README: Update. gdb/doc/ChangeLog 2018-09-29 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.
Diffstat (limited to 'gdb/doc')
-rw-r--r--gdb/doc/ChangeLog8
-rw-r--r--gdb/doc/gdb.texinfo150
2 files changed, 84 insertions, 74 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 45aed88..6f9a901 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,11 @@
+2018-09-29 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-28 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.texinfo (Frames): Rewrite the description of 'frame number'
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 6248641..b7a32c5 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -35222,10 +35222,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}
@@ -35258,6 +35261,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
@@ -35273,6 +35321,15 @@ 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 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.
+
@item zlib
@cindex compressed debug sections
@value{GDBN} will use the @samp{zlib} library, if available, to read
@@ -35284,30 +35341,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
@@ -35351,14 +35384,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.
@@ -35372,20 +35401,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
@@ -35393,16 +35416,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
@@ -35413,11 +35429,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
@@ -35446,7 +35460,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
@@ -35532,18 +35546,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
@@ -35566,8 +35579,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
@@ -35577,21 +35588,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