[RFC, take 2] Optional expat

Daniel Jacobowitz drow@false.org
Tue Aug 8 18:07:00 GMT 2006


Mark Kettenis made a couple of good points about requiring expat, the
best of which was that so far there are only remote debugging features
which use it.  I wouldn't mind there being more native and common
features which used it, but they aren't ready yet, and we can always
come back to this decision when they are.

So this patch adds and documents an optional dependency on expat; we'll
use it only if it's found.  A good first step, I think.

Comments?  OK to commit?

-- 
Daniel Jacobowitz
CodeSourcery

2006-08-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac: Check for expat.
	* acinclude.m4: Include AC_LIB_HAVE_LINKFLAGS dependencies.
	* Makefile.in (LIBEXPAT): New.
	(CLIBS): Include $(LIBEXPAT).
	* README: Mention expat.
	* configure, config.in: Regenerated.

2006-08-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.texinfo (Installing GDB): Update menu.  Move text to...
	(Running Configure): ...here.
	(Requirements): New node.  Mention expat.

Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.836
diff -u -p -r1.836 Makefile.in
--- Makefile.in	8 Aug 2006 17:39:10 -0000	1.836
+++ Makefile.in	8 Aug 2006 18:01:53 -0000
@@ -128,6 +128,9 @@ READLINE = $(READLINE_DIR)/libreadline.a
 READLINE_SRC = $(srcdir)/$(READLINE_DIR)
 READLINE_CFLAGS = -I$(READLINE_SRC)/..
 
+# Where is expat?  This will be empty if expat was not available.
+LIBEXPAT = @LIBEXPAT@
+
 WARN_CFLAGS = @WARN_CFLAGS@
 WERROR_CFLAGS = @WERROR_CFLAGS@
 GDB_WARN_CFLAGS = $(WARN_CFLAGS)
@@ -376,7 +379,7 @@ INSTALLED_LIBS=-lbfd -lreadline -lopcode
 	-lintl -liberty
 CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(INTL) $(LIBIBERTY) \
 	$(XM_CLIBS) $(TM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ \
-	$(LIBICONV) \
+	$(LIBICONV) $(LIBEXPAT) \
 	$(LIBIBERTY) $(WIN32LIBS)
 CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \
 	$(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS)
Index: README
===================================================================
RCS file: /cvs/src/src/gdb/README,v
retrieving revision 1.36
diff -u -p -r1.36 README
--- README	17 May 2006 14:40:39 -0000	1.36
+++ README	8 Aug 2006 18:01:53 -0000
@@ -89,6 +89,11 @@ C compiler for your system, you may be a
 the GNU CC compiler.  It is available via anonymous FTP from the
 directory `ftp://ftp.gnu.org/pub/gnu/gcc'.
 
+   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 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.
 See below.
Index: acinclude.m4
===================================================================
RCS file: /cvs/src/src/gdb/acinclude.m4,v
retrieving revision 1.15
diff -u -p -r1.15 acinclude.m4
--- acinclude.m4	31 May 2006 15:14:36 -0000	1.15
+++ acinclude.m4	8 Aug 2006 18:01:54 -0000
@@ -12,6 +12,11 @@ sinclude(../config/stdint.m4)
 
 sinclude(../config/gettext-sister.m4)
 
+dnl For AC_LIB_HAVE_LINKFLAGS.
+sinclude(../config/lib-ld.m4)
+sinclude(../config/lib-prefix.m4)
+sinclude(../config/lib-link.m4)
+
 dnl CYGNUS LOCAL: This gets the right posix flag for gcc
 AC_DEFUN([CY_AC_TCL_LYNX_POSIX],
 [AC_REQUIRE([AC_PROG_CC])AC_REQUIRE([AC_PROG_CPP])
Index: configure.ac
===================================================================
RCS file: /cvs/src/src/gdb/configure.ac,v
retrieving revision 1.33
diff -u -p -r1.33 configure.ac
--- configure.ac	31 May 2006 15:14:37 -0000	1.33
+++ configure.ac	8 Aug 2006 18:01:56 -0000
@@ -315,6 +315,12 @@ if test "$ac_cv_search_tgetent" = no; th
   AC_MSG_ERROR([no termcap library found])
 fi
 
+AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
+		      [XML_Parser p = XML_ParserCreate (0);])
+if test "$HAVE_LIBEXPAT" != yes; then
+  AC_MSG_WARN([expat is missing or unusable; some features may be disabled.])
+fi
+
 # ------------------------- #
 # Checks for header files.  #
 # ------------------------- #
Index: doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.346
diff -u -p -r1.346 gdb.texinfo
--- doc/gdb.texinfo	8 Aug 2006 15:48:08 -0000	1.346
+++ doc/gdb.texinfo	8 Aug 2006 18:01:59 -0000
@@ -21891,10 +21891,49 @@ Then give @file{gdb.dvi} to your @sc{dvi
 
 @node Installing GDB
 @appendix Installing @value{GDBN}
-@cindex configuring @value{GDBN}
 @cindex installation
-@cindex configuring @value{GDBN}, and source tree subdirectories
 
+@menu
+* Requirements::                Requirements for building @value{GDBN}
+* Running Configure::           Invoking the @value{GDBN} @code{configure} script
+* Separate Objdir::             Compiling @value{GDBN} in another directory
+* Config Names::                Specifying names for hosts and targets
+* Configure Options::           Summary of options for configure
+@end menu
+
+@node Requirements
+@section Requirements for building @value{GDBN}
+
+Building @value{GDBN} requires various tools and packages to be available.
+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.
+
+@end table
+
+@heading Tools/packages optional for building @value{GDBN}
+@table @asis
+@item Expat
+@value{GDBN} can use the Expat XML parsing library.  This library may be
+included with your operating system distribution; if it is not, you
+can get the latest version from @url{http://expat.sourceforge.net}.
+The @code{configure} script will search for this library in several
+standard locations; if it is installed in an unusual path, you can
+use the @samp{--with-libexpat-prefix} option to specify its location.
+
+Expat is used currently only used to implement some remote-specific
+features.
+
+@end table
+
+@node Running Configure
+@section Invoking the @value{GDBN} @code{configure} script
+@cindex configuring @value{GDBN}
+@cindex configuring @value{GDBN}, and source tree subdirectories
 @value{GDBN} comes with a @code{configure} script that automates the process
 of preparing @value{GDBN} for installation; you can then use @code{make} to
 build the @code{gdb} program.
@@ -22000,12 +22039,6 @@ the @samp{SHELL} environment variable) i
 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.
 
-@menu
-* Separate Objdir::             Compiling @value{GDBN} in another directory
-* Config Names::                Specifying names for hosts and targets
-* Configure Options::           Summary of options for configure
-@end menu
-
 @node Separate Objdir
 @section Compiling @value{GDBN} in another directory
 



More information about the Gdb-patches mailing list