gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 12 Oct 2011 15:55:04 +0000 (15:55 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 12 Oct 2011 15:55:04 +0000 (15:55 +0000)
Fix compatibility with texinfo versions older than 4.12.
* Makefile.in (MAKEINFO): Set to @MAKEINFO@.
(MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
(MAKEHTMLFLAGS): Use MAKEINFO_CMD.
(FLAGS_TO_PASS): Add MAKEINFOFLAGS and MAKEINFO_EXTRA_FLAGS.
* configure: Regenerate.
* configure.ac (MAKEINFO): Find it, from libiberty/configure.ac.
(MAKEINFOFLAGS): Pre-set it to --split-size=5000000.
(MAKEINFO_EXTRA_FLAGS): New test for -DHAVE_MAKEINFO_CLICK.

gdb/doc/
Fix compatibility with texinfo versions older than 4.12.
* Makefile.in (MAKEINFO): Set to @MAKEINFO@.
(MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
(MAKEHTMLFLAGS): Use MAKEINFO_CMD.
(gdb.info, gdbint.info, stabs.info, annotate.info): Use MAKEINFO_CMD.
* gdb.texinfo (Tail Call Frames): Convert @arrow{} to @click, when possible.
Make the conversion conditional on HAVE_MAKEINFO_CLICK, using variables
CALLSEQ1A, CALLSEQ1B, CALLSEQ2A and CALLSEQ2B.

gdb/ChangeLog
gdb/Makefile.in
gdb/configure
gdb/configure.ac
gdb/doc/ChangeLog
gdb/doc/Makefile.in
gdb/doc/gdb.texinfo

index be9a96d..f08b5a4 100644 (file)
@@ -1,3 +1,15 @@
+2011-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Fix compatibility with texinfo versions older than 4.12.
+       * Makefile.in (MAKEINFO): Set to @MAKEINFO@.
+       (MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
+       (MAKEHTMLFLAGS): Use MAKEINFO_CMD.
+       (FLAGS_TO_PASS): Add MAKEINFOFLAGS and MAKEINFO_EXTRA_FLAGS.
+       * configure: Regenerate.
+       * configure.ac (MAKEINFO): Find it, from libiberty/configure.ac.
+       (MAKEINFOFLAGS): Pre-set it to --split-size=5000000.
+       (MAKEINFO_EXTRA_FLAGS): New test for -DHAVE_MAKEINFO_CLICK.
+
 2011-10-12  Gary Benson  <gbenson@redhat.com>
 
        * breakpoint.h (pc_at_non_inline_function): Declare.
index 4dd324d..32d8ef3 100644 (file)
@@ -109,9 +109,12 @@ FLEX = flex
 YLWRAP = $(srcdir)/../ylwrap
 
 # where to find makeinfo, preferably one designed for texinfo-2
-MAKEINFO=makeinfo
+MAKEINFO = @MAKEINFO@
+MAKEINFOFLAGS = @MAKEINFOFLAGS@
+MAKEINFO_EXTRA_FLAGS = @MAKEINFO_EXTRA_FLAGS@
+MAKEINFO_CMD = $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFO_EXTRA_FLAGS)
 
-MAKEHTML = $(MAKEINFO) --html
+MAKEHTML = $(MAKEINFO_CMD) --html
 MAKEHTMLFLAGS =
 
 # Set this up with gcc if you have gnu ld and the loader will print out
@@ -614,6 +617,8 @@ FLAGS_TO_PASS = \
        "LDFLAGS=$(LDFLAGS)" \
        "RANLIB=$(RANLIB)" \
        "MAKEINFO=$(MAKEINFO)" \
+       "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \
+       "MAKEINFO_EXTRA_FLAGS=$(MAKEINFO_EXTRA_FLAGS)" \
        "MAKEHTML=$(MAKEHTML)" \
        "MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \
        "INSTALL=$(INSTALL)" \
index ac143e4..aec9d43 100755 (executable)
@@ -700,7 +700,6 @@ MKDIR_P
 INSTALL_STRIP_PROGRAM
 STRIP
 install_sh
-MAKEINFO
 AUTOHEADER
 AUTOMAKE
 AUTOCONF
@@ -711,6 +710,9 @@ am__isrc
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
+MAKEINFO_EXTRA_FLAGS
+MAKEINFOFLAGS
+MAKEINFO
 PACKAGE
 GNULIB_STDINT_H
 LIBGNU_LTLIBDEPS
@@ -7151,6 +7153,81 @@ _ACEOF
 
 
 
+# Do we have a single-tree copy of texinfo?  Even if we do, we can't
+# rely on it - libiberty is built before texinfo.
+# Extract the first word of "makeinfo", so it can be a program name with args.
+set dummy makeinfo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_MAKEINFO+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MAKEINFO"; then
+  ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_MAKEINFO="makeinfo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MAKEINFO=$ac_cv_prog_MAKEINFO
+if test -n "$MAKEINFO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
+$as_echo "$MAKEINFO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "x$MAKEINFO" = "x"; then
+  as_fn_error "makeinfo is required for compilation" "$LINENO" 5
+else
+  case "$MAKEINFO" in
+    */missing\ makeinfo*)
+      as_fn_error "makeinfo is required for compilation" "$LINENO" 5
+      ;;
+  esac
+fi
+
+
+# --split-size=5000000 may be already in $MAKEINFO from parent configure.
+# Re-running configure in gdb/ would lose it so ensure it stays present.
+MAKEINFOFLAGS=${MAKEINFOFLAGS---split-size=5000000}
+
+
+MAKEINFO_EXTRA_FLAGS=""
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $MAKEINFO supports @click" >&5
+$as_echo_n "checking whether $MAKEINFO supports @click... " >&6; }
+if test "${gdb_cv_have_makeinfo_click+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  echo '@clicksequence{a @click{} b}' >conftest.texinfo
+  if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
+    gdb_cv_have_makeinfo_click=yes
+  else
+    gdb_cv_have_makeinfo_click=no
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_have_makeinfo_click" >&5
+$as_echo "$gdb_cv_have_makeinfo_click" >&6; }
+if test x"$gdb_cv_have_makeinfo_click" = xyes; then
+  MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
+fi
+
+
 # GDB does not use automake, but gnulib does.  This line lets us
 # generate its Makefile.in.
 am__api_version='1.11'
index 8c12a44..fbbb2de 100644 (file)
@@ -87,6 +87,38 @@ PACKAGE=gdb
 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
 AC_SUBST(PACKAGE)
 
+# Do we have a single-tree copy of texinfo?  Even if we do, we can't
+# rely on it - libiberty is built before texinfo.
+AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
+if test "x$MAKEINFO" = "x"; then
+  AC_ERROR([makeinfo is required for compilation])
+else
+  case "$MAKEINFO" in
+    */missing\ makeinfo*)
+      AC_ERROR([makeinfo is required for compilation])
+      ;;
+  esac
+fi
+AC_SUBST(MAKEINFO)
+
+# --split-size=5000000 may be already in $MAKEINFO from parent configure.
+# Re-running configure in gdb/ would lose it so ensure it stays present.
+MAKEINFOFLAGS=${MAKEINFOFLAGS---split-size=5000000}
+AC_SUBST(MAKEINFOFLAGS)
+
+MAKEINFO_EXTRA_FLAGS=""
+AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
+  [echo '@clicksequence{a @click{} b}' >conftest.texinfo
+  if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
+    gdb_cv_have_makeinfo_click=yes
+  else
+    gdb_cv_have_makeinfo_click=no
+  fi])
+if test x"$gdb_cv_have_makeinfo_click" = xyes; then
+  MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
+fi
+AC_SUBST(MAKEINFO_EXTRA_FLAGS)
+
 # GDB does not use automake, but gnulib does.  This line lets us
 # generate its Makefile.in.
 AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
index 8ebc4f2..1512909 100644 (file)
@@ -1,3 +1,14 @@
+2011-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Fix compatibility with texinfo versions older than 4.12.
+       * Makefile.in (MAKEINFO): Set to @MAKEINFO@.
+       (MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
+       (MAKEHTMLFLAGS): Use MAKEINFO_CMD.
+       (gdb.info, gdbint.info, stabs.info, annotate.info): Use MAKEINFO_CMD.
+       * gdb.texinfo (Tail Call Frames): Convert @arrow{} to @click, when possible.
+       Make the conversion conditional on HAVE_MAKEINFO_CLICK, using variables
+       CALLSEQ1A, CALLSEQ1B, CALLSEQ2A and CALLSEQ2B.
+
 2011-10-09  Doug Evans  <dje@google.com>
 
        * gdb.texinfo (Extending GDB): Document alias command.
index eef47a5..7310e36 100644 (file)
@@ -45,9 +45,12 @@ gdbdir = $(srcdir)/..
 TEXIDIR=${gdbdir}/../texinfo
 
 # where to find makeinfo, preferably one designed for texinfo-2
-MAKEINFO=makeinfo
+MAKEINFO = @MAKEINFO@
+MAKEINFOFLAGS = @MAKEINFOFLAGS@
+MAKEINFO_EXTRA_FLAGS = @MAKEINFO_EXTRA_FLAGS@
+MAKEINFO_CMD = $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFO_EXTRA_FLAGS)
 
-MAKEHTML = $(MAKEINFO) --html 
+MAKEHTML = $(MAKEINFO_CMD) --html
 MAKEHTMLFLAGS =
 
 # where to find texi2roff, ditto
@@ -365,7 +368,7 @@ gdb.pdf: ${GDB_DOC_FILES}
 
 # GDB MANUAL: info file
 gdb.info: ${GDB_DOC_FILES}
-       $(MAKEINFO) $(READLINE_TEXI_INCFLAG) -I ${GDBMI_DIR} -I $(srcdir) \
+       $(MAKEINFO_CMD) $(READLINE_TEXI_INCFLAG) -I ${GDBMI_DIR} -I $(srcdir) \
                -o gdb.info $(srcdir)/gdb.texinfo
 
 # GDB MANUAL: roff translations
@@ -464,7 +467,7 @@ gdbint.pdf: $(GDBINT_DOC_FILES)
 # GDB INTERNALS MANUAL: info file
 
 gdbint.info: $(GDBINT_DOC_FILES)
-       $(MAKEINFO) -I $(srcdir) -o gdbint.info $(srcdir)/gdbint.texinfo
+       $(MAKEINFO_CMD) -I $(srcdir) -o gdbint.info $(srcdir)/gdbint.texinfo
 
 # GDB INTERNALS MANUAL: HTML file
 
@@ -472,7 +475,7 @@ gdbint/index.html: $(GDBINT_DOC_FILES)
        $(MAKEHTML) $(MAKEHTMLFLAGS) -I $(srcdir) $(srcdir)/gdbint.texinfo
 
 stabs.info: $(STABS_DOC_FILES)
-       $(MAKEINFO) -I $(srcdir) -o stabs.info $(srcdir)/stabs.texinfo
+       $(MAKEINFO_CMD) -I $(srcdir) -o stabs.info $(srcdir)/stabs.texinfo
 
 # STABS DOCUMENTATION: HTML file
 
@@ -516,7 +519,7 @@ annotate.pdf: $(ANNOTATE_DOC_FILES)
        $(TEXI2DVI) --pdf -I $(srcdir) $(srcdir)/annotate.texinfo
 
 annotate.info: $(ANNOTATE_DOC_FILES)
-       $(MAKEINFO -I $(srcdir) -o annotate.info $(srcdir)/annotate.texinfo
+       $(MAKEINFO_CMD) -I $(srcdir) -o annotate.info $(srcdir)/annotate.texinfo
 
 annotate/index.html: $(ANNOTATE_DOC_FILES)
        $(MAKEHTML) $(MAKEHTMLFLAGS) -I $(srcdir) $(srcdir)/annotate.texinfo
index 5a78db1..da04e2e 100644 (file)
@@ -9789,11 +9789,24 @@ tailcall: reduced: 0x4004d2(a) |
 #2  0x0000000000400395 in main () at t.c:9
 @end smallexample
 
-Frames #0 and #2 are real, #1 is a virtual tail call frame.  The code can have
-possible execution paths
-@code{main@arrow{}a@arrow{}b@arrow{}c@arrow{}d@arrow{}f} or
-@code{main@arrow{}a@arrow{}b@arrow{}e@arrow{}f}, @value{GDBN} cannot find which
-one from the inferior state.
+@set CALLSEQ1A @code{main@value{ARROW}a@value{ARROW}b@value{ARROW}c@value{ARROW}d@value{ARROW}f}
+@set CALLSEQ2A @code{main@value{ARROW}a@value{ARROW}b@value{ARROW}e@value{ARROW}f}
+
+@c Convert CALLSEQ#A to CALLSEQ#B depending on HAVE_MAKEINFO_CLICK.
+@ifset HAVE_MAKEINFO_CLICK
+@set ARROW @click{}
+@set CALLSEQ1B @clicksequence{@value{CALLSEQ1A}}
+@set CALLSEQ2B @clicksequence{@value{CALLSEQ2A}}
+@end ifset
+@ifclear HAVE_MAKEINFO_CLICK
+@set ARROW ->
+@set CALLSEQ1B @value{CALLSEQ1A}
+@set CALLSEQ2B @value{CALLSEQ2A}
+@end ifclear
+
+Frames #0 and #2 are real, #1 is a virtual tail call frame.
+The code can have possible execution paths @value{CALLSEQ1B} or
+@value{CALLSEQ2B}, @value{GDBN} cannot find which one from the inferior state.
 
 @code{initial:} state shows some random possible calling sequence @value{GDBN}
 has found.  It then finds another possible calling sequcen - that one is