[gdb/f14/master] - Formal update to the final FSF GDB release.

Jan Kratochvil jkratoch at fedoraproject.org
Fri Sep 3 08:10:07 UTC 2010


commit fd714957008c6dae9f1ad6557b8500a0c4855764
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date:   Fri Sep 3 10:10:00 2010 +0200

    - Formal update to the final FSF GDB release.

 .gitignore                    |    3 +-
 gdb-6.3-gstack-20050411.patch |   43 +++--
 gdb-archer.patch              |  144 ++++++++--------
 gdb-upstream.patch            |  383 -----------------------------------------
 gdb.spec                      |    7 +-
 sources                       |    1 -
 6 files changed, 101 insertions(+), 480 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 32910a8..818b1e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1 @@
-gdb-7.1.90.20100806.tar.bz2
-/gdb-7.2.tar.bz2
+gdb-7.2.tar.bz2
diff --git a/gdb-6.3-gstack-20050411.patch b/gdb-6.3-gstack-20050411.patch
index 100b877..2d99428 100644
--- a/gdb-6.3-gstack-20050411.patch
+++ b/gdb-6.3-gstack-20050411.patch
@@ -4,10 +4,11 @@
 	to install and uninstall.
 	* gstack.sh, gstack.1: New files.
 
-diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in
---- gdb-7.0.1-empty/gdb/Makefile.in	2010-04-07 20:36:04.000000000 +0200
-+++ gdb-7.0.1/gdb/Makefile.in	2010-04-07 20:36:42.000000000 +0200
-@@ -989,7 +989,7 @@ install: all install-only 
+Index: gdb-7.2/gdb/Makefile.in
+===================================================================
+--- gdb-7.2.orig/gdb/Makefile.in	2010-09-03 09:37:55.000000000 +0200
++++ gdb-7.2/gdb/Makefile.in	2010-09-03 09:38:45.000000000 +0200
+@@ -1010,7 +1010,7 @@ install: all install-only 
  
  # The "install-only" target also installs the syscalls' XML files in
  # the system.
@@ -16,10 +17,11 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in
  	transformed_name=`t='$(program_transform_name)'; \
  			  echo gdb | sed -e "$$t"` ; \
  		if test "x$$transformed_name" = x; then \
-@@ -1021,9 +1021,26 @@ install-tui:
- 			$(DESTDIR)$(man1dir) ; \
- 		$(INSTALL_DATA) $(srcdir)/gdb.1 \
- 			$(DESTDIR)$(man1dir)/$$transformed_name.1
+@@ -1046,7 +1046,25 @@ install-tui:
+ install-python:
+ 	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb
+ 
+-uninstall: force $(CONFIG_UNINSTALL)
 +GSTACK=gstack
 +.PHONY: install-gstack
 +install-gstack:
@@ -37,14 +39,12 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in
 +			$(DESTDIR)$(man1dir) ; \
 +		: $(INSTALL_DATA) $(srcdir)/gstack.1 \
 +			$(DESTDIR)$(man1dir)/$$transformed_name.1
- 
- 
--uninstall: force $(CONFIG_UNINSTALL)
++
 +uninstall: force uninstall-gstack $(CONFIG_UNINSTALL)
  	transformed_name=`t='$(program_transform_name)'; \
  			  echo gdb | sed -e $$t` ; \
  		if test "x$$transformed_name" = x; then \
-@@ -1045,6 +1062,17 @@ uninstall-tui:
+@@ -1068,6 +1086,17 @@ uninstall-tui:
  		fi ; \
  		rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \
  		      $(DESTDIR)$(man1dir)/$$transformed_name.1
@@ -62,9 +62,10 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in
  
  # The C++ name parser can be built standalone for testing.
  test-cp-name-parser.o: cp-name-parser.c
-diff -up -ruNp gdb-7.0.1-empty/gdb/gstack.sh gdb-7.0.1/gdb/gstack.sh
---- gdb-7.0.1-empty/gdb/gstack.sh	1970-01-01 01:00:00.000000000 +0100
-+++ gdb-7.0.1/gdb/gstack.sh	2010-04-07 20:36:47.000000000 +0200
+Index: gdb-7.2/gdb/gstack.sh
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-7.2/gdb/gstack.sh	2010-09-03 09:38:12.000000000 +0200
 @@ -0,0 +1,48 @@
 +#!/bin/sh
 +
@@ -114,8 +115,10 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/gstack.sh gdb-7.0.1/gdb/gstack.sh
 +    -e 's/^\((gdb) \)*//' \
 +    -e '/^#/p' \
 +    -e '/^Thread/p'
---- /dev/null	2010-04-07 06:20:52.289994508 +0200
-+++ gdb-7.0.1/gdb/testsuite/gdb.base/gstack.exp	2010-04-07 21:53:57.000000000 +0200
+Index: gdb-7.2/gdb/testsuite/gdb.base/gstack.exp
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-7.2/gdb/testsuite/gdb.base/gstack.exp	2010-09-03 09:38:12.000000000 +0200
 @@ -0,0 +1,71 @@
 +# Copyright (C) 2010 Free Software Foundation, Inc.
 +
@@ -188,8 +191,10 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/gstack.sh gdb-7.0.1/gdb/gstack.sh
 +gdb_exit
 +
 +remote_exec host "kill -9 $pid"
---- /dev/null	2010-04-07 06:20:52.289994508 +0200
-+++ gdb-7.0.1/gdb/testsuite/gdb.base/gstack.c	2010-04-07 21:46:52.000000000 +0200
+Index: gdb-7.2/gdb/testsuite/gdb.base/gstack.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-7.2/gdb/testsuite/gdb.base/gstack.c	2010-09-03 09:38:12.000000000 +0200
 @@ -0,0 +1,43 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
diff --git a/gdb-archer.patch b/gdb-archer.patch
index e78e79e..f0e3f2f 100644
--- a/gdb-archer.patch
+++ b/gdb-archer.patch
@@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
 http://sourceware.org/gdb/wiki/ArcherBranchManagement
 
 GIT snapshot:
-commit af507f71e376b19f8ee9d54067924790566440e8
+commit 30a7ce8ffc2b54bc4453a127be8dd28a3ea6d299
 
 branch `archer' - the merge of branches:
 archer-jankratochvil-vla
@@ -15,7 +15,7 @@ archer-tromey-optional-psymtab (cherry-picked from post-7.2 master)
 
 
 diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index 6dbb284..6133da3 100644
+index f07bc8b..3703dca 100644
 --- a/gdb/Makefile.in
 +++ b/gdb/Makefile.in
 @@ -169,6 +169,12 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
@@ -57,7 +57,7 @@ index 6dbb284..6133da3 100644
  
  # Header files that already have srcdir in them, or which are in objdir.
  
-@@ -1299,6 +1305,12 @@ stamp-h: $(srcdir)/config.in config.status
+@@ -1301,6 +1307,12 @@ stamp-h: $(srcdir)/config.in config.status
  	  CONFIG_LINKS= \
  	  $(SHELL) config.status
  
@@ -70,7 +70,7 @@ index 6dbb284..6133da3 100644
  config.status: $(srcdir)/configure configure.tgt configure.host
  	$(SHELL) config.status --recheck
  
-@@ -2022,6 +2034,10 @@ py-function.o: $(srcdir)/python/py-function.c
+@@ -2024,6 +2036,10 @@ py-function.o: $(srcdir)/python/py-function.c
  	$(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-function.c
  	$(POSTCOMPILE)
  
@@ -81,7 +81,7 @@ index 6dbb284..6133da3 100644
  py-inferior.o: $(srcdir)/python/py-inferior.c
  	$(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-inferior.c
  	$(POSTCOMPILE)
-@@ -2070,6 +2086,36 @@ py-value.o: $(srcdir)/python/py-value.c
+@@ -2072,6 +2088,36 @@ py-value.o: $(srcdir)/python/py-value.c
  	$(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-value.c
  	$(POSTCOMPILE)
  
@@ -289,7 +289,7 @@ index 0348bf4..f01d0ee 100644
  
  /* Return the innermost stack frame executing inside of BLOCK,
 diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
-index 4affe0a..584c68e 100644
+index 6a6864c..5df336d 100644
 --- a/gdb/breakpoint.c
 +++ b/gdb/breakpoint.c
 @@ -62,6 +62,7 @@
@@ -1349,7 +1349,7 @@ index 1fc457d..f4c846a 100644
  #undef PYTHON_PATH_RELOCATABLE
  
 diff --git a/gdb/configure b/gdb/configure
-index 94eb9b9..e49da08 100755
+index 041ffc1..8243abb 100755
 --- a/gdb/configure
 +++ b/gdb/configure
 @@ -679,6 +679,8 @@ REPORT_BUGS_TO
@@ -1454,17 +1454,16 @@ index 94eb9b9..e49da08 100755
  
  
  subdirs="$subdirs doc testsuite"
-@@ -10881,6 +10955,8 @@ $as_echo "#define HAVE_PYTHON 1" >>confdefs.h
-   CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
+@@ -10919,6 +10993,7 @@ $as_echo "#define HAVE_PYTHON 1" >>confdefs.h
    CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
    CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
-+  CONFIG_INSTALL="$CONFIG_INSTALL install-python"
+   CONFIG_INSTALL="$CONFIG_INSTALL install-python"
 +  CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-python"
    ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
  
    # Flags needed to compile Python code (taken from python-config --cflags).
 diff --git a/gdb/configure.ac b/gdb/configure.ac
-index 9300544..380473a 100644
+index b69c3b6..4e89558 100644
 --- a/gdb/configure.ac
 +++ b/gdb/configure.ac
 @@ -108,6 +108,51 @@ AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this pat
@@ -1519,17 +1518,16 @@ index 9300544..380473a 100644
  AC_CONFIG_SUBDIRS(doc testsuite)
  
  # Check whether to support alternative target configurations
-@@ -828,6 +873,8 @@ if test "${have_libpython}" != no; then
-   CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
+@@ -833,6 +878,7 @@ if test "${have_libpython}" != no; then
    CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
    CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
-+  CONFIG_INSTALL="$CONFIG_INSTALL install-python"
+   CONFIG_INSTALL="$CONFIG_INSTALL install-python"
 +  CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-python"
    ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
  
    # Flags needed to compile Python code (taken from python-config --cflags).
 diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
-index 1297175..c030b65 100644
+index 65d4899..96767b0 100644
 --- a/gdb/doc/gdb.texinfo
 +++ b/gdb/doc/gdb.texinfo
 @@ -1162,6 +1162,16 @@ for remote debugging.
@@ -1549,7 +1547,7 @@ index 1297175..c030b65 100644
  @c resolve the situation of these eventually
  @item -tui
  @cindex @code{--tui}
-@@ -14282,6 +14292,7 @@ program.  To debug a core dump of a previous run, you must also tell
+@@ -14308,6 +14318,7 @@ program.  To debug a core dump of a previous run, you must also tell
  @menu
  * Files::                       Commands to specify files
  * Separate Debug Files::        Debugging information in separate files
@@ -1557,7 +1555,7 @@ index 1297175..c030b65 100644
  * Symbol Errors::               Errors reading symbol files
  * Data Files::                  GDB data files
  @end menu
-@@ -15171,6 +15182,46 @@ gnu_debuglink_crc32 (unsigned long crc,
+@@ -15197,6 +15208,46 @@ gnu_debuglink_crc32 (unsigned long crc,
  This computation does not apply to the ``build ID'' method.
  
  
@@ -1604,7 +1602,7 @@ index 1297175..c030b65 100644
  @node Symbol Errors
  @section Errors Reading Symbol Files
  
-@@ -20310,8 +20361,6 @@ containing @code{end}.  For example:
+@@ -20349,8 +20400,6 @@ containing @code{end}.  For example:
  
  @smallexample
  (@value{GDBP}) python
@@ -1613,7 +1611,7 @@ index 1297175..c030b65 100644
  >print 23
  >end
  23
-@@ -20324,6 +20373,14 @@ in a Python script.  This can be controlled using @code{maint set
+@@ -20363,6 +20412,14 @@ in a Python script.  This can be controlled using @code{maint set
  python print-stack}: if @code{on}, the default, then Python stack
  printing is enabled; if @code{off}, then Python stack printing is
  disabled.
@@ -1628,7 +1626,7 @@ index 1297175..c030b65 100644
  @end table
  
  It is also possible to execute a Python script from the @value{GDBN}
-@@ -20345,6 +20402,14 @@ and thus is always available.
+@@ -20384,6 +20441,14 @@ and thus is always available.
  @cindex python api
  @cindex programming in python
  
@@ -1643,7 +1641,7 @@ index 1297175..c030b65 100644
  @cindex python stdout
  @cindex python pagination
  At startup, @value{GDBN} overrides Python's @code{sys.stdout} and
-@@ -20356,7 +20421,7 @@ situation, a Python @code{KeyboardInterrupt} exception is thrown.
+@@ -20395,7 +20460,7 @@ situation, a Python @code{KeyboardInterrupt} exception is thrown.
  @menu
  * Basic Python::                Basic Python Functions.
  * Exception Handling::
@@ -1652,7 +1650,7 @@ index 1297175..c030b65 100644
  * Types In Python::             Python representation of types.
  * Pretty Printing API::         Pretty-printing values.
  * Selecting Pretty-Printers::   How GDB chooses a pretty-printer.
-@@ -20415,6 +20480,12 @@ Return a sequence holding all of @value{GDBN}'s breakpoints.
+@@ -20456,6 +20521,12 @@ Return a sequence holding all of @value{GDBN}'s breakpoints.
  @xref{Breakpoints In Python}, for more information.
  @end defun
  
@@ -1665,7 +1663,7 @@ index 1297175..c030b65 100644
  @findex gdb.parameter
  @defun parameter parameter
  Return the value of a @value{GDBN} parameter.  @var{parameter} is a
-@@ -20431,6 +20502,7 @@ a Python value of the appropriate type, and returned.
+@@ -20472,6 +20543,7 @@ a Python value of the appropriate type, and returned.
  @defun history number
  Return a value from @value{GDBN}'s value history (@pxref{Value
  History}).  @var{number} indicates which history element to return.
@@ -1673,7 +1671,7 @@ index 1297175..c030b65 100644
  If @var{number} is negative, then @value{GDBN} will take its absolute value
  and count backward from the last element (i.e., the most recent element) to
  find the value to return.  If @var{number} is zero, then @value{GDBN} will
-@@ -20455,6 +20527,21 @@ compute values, for example, it is the only way to get the value of a
+@@ -20496,6 +20568,21 @@ compute values, for example, it is the only way to get the value of a
  convenience variable (@pxref{Convenience Vars}) as a @code{gdb.Value}.
  @end defun
  
@@ -1880,7 +1878,7 @@ index 61b8f00..d94c03c 100644
    /* The current depth of dwarf expression recursion, via DW_OP_call*,
       DW_OP_fbreg, DW_OP_push_object_address, etc., and the maximum
 diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
-index 2a8e557..be74412 100644
+index f59bc40..7ff0ef9 100644
 --- a/gdb/dwarf2loc.c
 +++ b/gdb/dwarf2loc.c
 @@ -48,6 +48,12 @@ static void
@@ -2158,7 +2156,7 @@ index 2a8e557..be74412 100644
  	    retval = allocate_value (type);
  	    VALUE_LVAL (retval) = lval_memory;
  	    set_value_lazy (retval, 1);
-@@ -2586,11 +2744,51 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
+@@ -2590,11 +2748,51 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
  			 dlbaton->per_cu);
  }
  
@@ -2232,7 +2230,7 @@ index 826bc45..1e7d8dc 100644
  
  #endif /* dwarf2loc.h */
 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
-index 16381de..e286f4c 100644
+index 1e75235..d54e266 100644
 --- a/gdb/dwarf2read.c
 +++ b/gdb/dwarf2read.c
 @@ -51,6 +51,9 @@
@@ -3565,7 +3563,7 @@ index 16381de..e286f4c 100644
  
    do_cleanups (back_to);
  }
-@@ -3559,6 +4542,46 @@ free_cu_line_header (void *arg)
+@@ -3557,6 +4540,46 @@ free_cu_line_header (void *arg)
  }
  
  static void
@@ -3612,7 +3610,7 @@ index 16381de..e286f4c 100644
  read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
  {
    struct objfile *objfile = cu->objfile;
-@@ -3584,35 +4607,7 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
+@@ -3582,35 +4605,7 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
    lowpc += baseaddr;
    highpc += baseaddr;
  
@@ -3649,7 +3647,7 @@ index 16381de..e286f4c 100644
  
    attr = dwarf2_attr (die, DW_AT_language, cu);
    if (attr)
-@@ -5531,6 +6526,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
+@@ -5529,6 +6524,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
    new_symbol (die, this_type, cu);
  }
  
@@ -3679,7 +3677,7 @@ index 16381de..e286f4c 100644
  /* Extract all information from a DW_TAG_array_type DIE and put it in
     the DIE's type field.  For now, this only handles one dimensional
     arrays.  */
-@@ -5544,7 +6562,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -5542,7 +6560,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
    struct type *element_type, *range_type, *index_type;
    struct type **range_types = NULL;
    struct attribute *attr;
@@ -3688,7 +3686,7 @@ index 16381de..e286f4c 100644
    struct cleanup *back_to;
    char *name;
  
-@@ -5597,17 +6615,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -5595,17 +6613,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
    type = element_type;
  
    if (read_array_order (die, cu) == DW_ORD_col_major)
@@ -3711,7 +3709,7 @@ index 16381de..e286f4c 100644
  
    /* Understand Dwarf2 support for vector types (like they occur on
       the PowerPC w/ AltiVec).  Gcc just adds another attribute to the
-@@ -6061,29 +7073,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -6059,29 +7071,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
    struct gdbarch *gdbarch = get_objfile_arch (objfile);
    struct type *type, *range_type, *index_type, *char_type;
    struct attribute *attr;
@@ -3840,7 +3838,7 @@ index 16381de..e286f4c 100644
    char_type = language_string_char_type (cu->language_defn, gdbarch);
    type = create_string_type (NULL, char_type, range_type);
  
-@@ -6326,60 +7423,136 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -6324,60 +7421,136 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
    struct type *base_type;
    struct type *range_type;
    struct attribute *attr;
@@ -4011,7 +4009,7 @@ index 16381de..e286f4c 100644
      }
  
    /* Dwarf-2 specifications explicitly allows to create subrange types
-@@ -6421,20 +7594,41 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -6419,20 +7592,41 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
  	}
      }
  
@@ -4065,7 +4063,7 @@ index 16381de..e286f4c 100644
  
    name = dwarf2_name (die, cu);
    if (name)
-@@ -8714,10 +9908,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
+@@ -8712,10 +9906,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
       (i.e. when the value of a register or memory location is
       referenced, or a thread-local block, etc.).  Then again, it might
       not be worthwhile.  I'm assuming that it isn't unless performance
@@ -4080,7 +4078,7 @@ index 16381de..e286f4c 100644
  }
  
  /* Given a pointer to a DWARF information entry, figure out if we need
-@@ -8748,6 +9944,8 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
+@@ -8746,6 +9942,8 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
  					     sizeof (struct symbol));
        OBJSTAT (objfile, n_syms++);
        memset (sym, 0, sizeof (struct symbol));
@@ -4089,7 +4087,7 @@ index 16381de..e286f4c 100644
  
        /* Cache this symbol's name and the name's demangled form (if any).  */
        SYMBOL_LANGUAGE (sym) = cu->language;
-@@ -9379,6 +10577,9 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu)
+@@ -9375,6 +10573,9 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu)
        break;
      }
  
@@ -4099,7 +4097,7 @@ index 16381de..e286f4c 100644
    return this_type;
  }
  
-@@ -11983,67 +13184,102 @@ attr_form_is_constant (struct attribute *attr)
+@@ -11979,67 +13180,102 @@ attr_form_is_constant (struct attribute *attr)
      }
  }
  
@@ -4251,7 +4249,7 @@ index 16381de..e286f4c 100644
      }
  }
  
-@@ -12054,7 +13290,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
+@@ -12050,7 +13286,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
  struct objfile *
  dwarf2_per_cu_objfile (struct dwarf2_per_cu_data *per_cu)
  {
@@ -4260,7 +4258,7 @@ index 16381de..e286f4c 100644
  
    /* Return the master objfile, so that we can report and look up the
       correct file containing this variable.  */
-@@ -12074,7 +13310,7 @@ dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *per_cu)
+@@ -12070,7 +13306,7 @@ dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *per_cu)
    else
      {
        /* If the CU is not currently read in, we re-read its header.  */
@@ -4269,7 +4267,7 @@ index 16381de..e286f4c 100644
        struct dwarf2_per_objfile *per_objfile
  	= objfile_data (objfile, dwarf2_objfile_data_key);
        gdb_byte *info_ptr = per_objfile->info.buffer + per_cu->offset;
-@@ -12096,7 +13332,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu)
+@@ -12092,7 +13328,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu)
    else
      {
        /* If the CU is not currently read in, we re-read its header.  */
@@ -4278,7 +4276,7 @@ index 16381de..e286f4c 100644
        struct dwarf2_per_objfile *per_objfile
  	= objfile_data (objfile, dwarf2_objfile_data_key);
        gdb_byte *info_ptr = per_objfile->info.buffer + per_cu->offset;
-@@ -12116,7 +13352,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu)
+@@ -12112,7 +13348,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu)
  CORE_ADDR
  dwarf2_per_cu_text_offset (struct dwarf2_per_cu_data *per_cu)
  {
@@ -4287,7 +4285,7 @@ index 16381de..e286f4c 100644
  
    return ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
  }
-@@ -12338,6 +13574,30 @@ dwarf2_free_objfile (struct objfile *objfile)
+@@ -12334,6 +13570,30 @@ dwarf2_free_objfile (struct objfile *objfile)
    /* Cached DIE trees use xmalloc and the comp_unit_obstack.  */
    free_cached_comp_units (NULL);
  
@@ -4318,7 +4316,7 @@ index 16381de..e286f4c 100644
    /* Everything else should be on the objfile obstack.  */
  }
  
-@@ -12372,6 +13632,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs)
+@@ -12368,6 +13628,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs)
    return ofs_lhs->offset == ofs_rhs->offset;
  }
  
@@ -4350,7 +4348,7 @@ index 16381de..e286f4c 100644
  /* Set the type associated with DIE to TYPE.  Save it in CU's hash
     table if necessary.  For convenience, return TYPE.
  
-@@ -12395,6 +13680,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
+@@ -12391,6 +13676,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
  {
    struct dwarf2_offset_and_type **slot, ofs;
  
@@ -4359,8 +4357,8 @@ index 16381de..e286f4c 100644
    /* For Ada types, make sure that the gnat-specific data is always
       initialized (if not already set).  There are a few types where
       we should not be doing so, because the type-specific area is
-@@ -12592,8 +13879,567 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d)
-   munmap_section_buffer (&data->loc);
+@@ -12591,8 +13878,567 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d)
+   munmap_section_buffer (&data->types);
    munmap_section_buffer (&data->frame);
    munmap_section_buffer (&data->eh_frame);
 +  munmap_section_buffer (&data->gdb_index);
@@ -4927,7 +4925,7 @@ index 16381de..e286f4c 100644
  int dwarf2_always_disassemble;
  
  static void
-@@ -12610,6 +14456,8 @@ void _initialize_dwarf2_read (void);
+@@ -12609,6 +14455,8 @@ void _initialize_dwarf2_read (void);
  void
  _initialize_dwarf2_read (void)
  {
@@ -4936,7 +4934,7 @@ index 16381de..e286f4c 100644
    dwarf2_objfile_data_key
      = register_objfile_data_with_cleanup (NULL, dwarf2_per_objfile_free);
  
-@@ -12657,4 +14505,9 @@ The value is the maximum depth to print."),
+@@ -12656,4 +14504,9 @@ The value is the maximum depth to print."),
  			    NULL,
  			    NULL,
  			    &setdebuglist, &showdebuglist);
@@ -6111,7 +6109,7 @@ index e0ca12c..de6311a 100644
    else
      {
 diff --git a/gdb/gdbcmd.h b/gdb/gdbcmd.h
-index 6a230c0..d87a813 100644
+index 78151dd..da11686 100644
 --- a/gdb/gdbcmd.h
 +++ b/gdb/gdbcmd.h
 @@ -124,6 +124,10 @@ extern struct cmd_list_element *setchecklist;
@@ -6123,8 +6121,8 @@ index 6a230c0..d87a813 100644
 +extern struct cmd_list_element *save_cmdlist;
 +
  extern void execute_command (char *, int);
+ extern char *execute_command_to_string (char *p, int from_tty);
  
- enum command_control_type execute_control_command (struct command_line *);
 diff --git a/gdb/gdbinit.in b/gdb/gdbinit.in
 index ffb7f53..a2e7e94 100644
 --- a/gdb/gdbinit.in
@@ -7706,7 +7704,7 @@ index 5abec68..e309277 100644
  
  extern void notice_new_inferior (ptid_t, int, int);
 diff --git a/gdb/infrun.c b/gdb/infrun.c
-index 57f2ab8..5762a7f 100644
+index 54b1d9f..58d045a 100644
 --- a/gdb/infrun.c
 +++ b/gdb/infrun.c
 @@ -45,6 +45,8 @@
@@ -8590,7 +8588,7 @@ index bb79ae1..fbbd600 100644
 +
  #endif /* PARSER_DEFS_H */
 diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
-index e8d96f6..8bf097c 100644
+index 18ddee7..652b02a 100644
 --- a/gdb/ppc-linux-nat.c
 +++ b/gdb/ppc-linux-nat.c
 @@ -2010,6 +2010,24 @@ ppc_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw,
@@ -8673,7 +8671,7 @@ index 5ffa099..58d9c79 100644
 +  observer_attach_mark_used (print_types_mark_used);
  }
 diff --git a/gdb/psymtab.c b/gdb/psymtab.c
-index 367cf1e..c120894 100644
+index 97a4eec..fce19c9 100644
 --- a/gdb/psymtab.c
 +++ b/gdb/psymtab.c
 @@ -421,6 +421,14 @@ lookup_symbol_aux_psymtabs (struct objfile *objfile,
@@ -10339,7 +10337,7 @@ index 2b8d301..0af99c8 100644
  
  extern PyObject *gdbpy_gdberror_exc;
 diff --git a/gdb/python/python.c b/gdb/python/python.c
-index 6680126..2eee31f 100644
+index 7346fba..ee6e476 100644
 --- a/gdb/python/python.c
 +++ b/gdb/python/python.c
 @@ -28,6 +28,7 @@
@@ -10368,7 +10366,7 @@ index 6680126..2eee31f 100644
  
  static PyMethodDef GdbMethods[];
  
-@@ -413,6 +421,105 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
+@@ -374,6 +382,105 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
    Py_RETURN_NONE;
  }
  
@@ -10474,7 +10472,7 @@ index 6680126..2eee31f 100644
  /* Parse a string and evaluate it as an expression.  */
  static PyObject *
  gdbpy_parse_and_eval (PyObject *self, PyObject *args)
-@@ -453,6 +560,114 @@ source_python_script (FILE *stream, const char *file)
+@@ -414,6 +521,114 @@ source_python_script (FILE *stream, const char *file)
  
  
  
@@ -10589,7 +10587,7 @@ index 6680126..2eee31f 100644
  /* Printing.  */
  
  /* A python function to write a single string using gdb's filtered
-@@ -498,6 +713,53 @@ gdbpy_print_stack (void)
+@@ -459,6 +674,53 @@ gdbpy_print_stack (void)
  
  /* Return the current Progspace.
     There always is one.  */
@@ -10643,7 +10641,7 @@ index 6680126..2eee31f 100644
  
  static PyObject *
  gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
-@@ -759,6 +1021,7 @@ Enables or disables printing of Python stack traces."),
+@@ -720,6 +982,7 @@ Enables or disables printing of Python stack traces."),
    gdbpy_initialize_lazy_string ();
    gdbpy_initialize_thread ();
    gdbpy_initialize_inferior ();
@@ -10651,7 +10649,7 @@ index 6680126..2eee31f 100644
  
    PyRun_SimpleString ("import gdb");
    PyRun_SimpleString ("gdb.pretty_printers = []");
-@@ -826,6 +1089,8 @@ static PyMethodDef GdbMethods[] =
+@@ -787,6 +1050,8 @@ static PyMethodDef GdbMethods[] =
      "Get a value from history" },
    { "execute", (PyCFunction) execute_gdb_command, METH_VARARGS | METH_KEYWORDS,
      "Execute a gdb command" },
@@ -10660,7 +10658,7 @@ index 6680126..2eee31f 100644
    { "parameter", gdbpy_parameter, METH_VARARGS,
      "Return a gdb parameter's value" },
  
-@@ -864,11 +1129,21 @@ a boolean indicating if name is a field of the current implied argument\n\
+@@ -825,11 +1090,21 @@ a boolean indicating if name is a field of the current implied argument\n\
  `this' (when the current language is object-oriented)." },
    { "block_for_pc", gdbpy_block_for_pc, METH_VARARGS,
      "Return the block containing the given pc value, or None." },
@@ -10710,7 +10708,7 @@ index 1f135d4..489838d 100644
  
  /* Given an executable's ABFD and target, compute the entry-point
 diff --git a/gdb/symfile.c b/gdb/symfile.c
-index ab51fa4..babe9cf 100644
+index 42f7ae3..371db0d 100644
 --- a/gdb/symfile.c
 +++ b/gdb/symfile.c
 @@ -1059,6 +1059,9 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd,
@@ -10732,7 +10730,7 @@ index ab51fa4..babe9cf 100644
      {
        if (from_tty || info_verbose)
  	{
-@@ -1535,7 +1538,7 @@ symbol_file_command (char *args, int from_tty)
+@@ -1533,7 +1536,7 @@ symbol_file_command (char *args, int from_tty)
  void
  set_initial_language (void)
  {
@@ -10741,7 +10739,7 @@ index ab51fa4..babe9cf 100644
    enum language lang = language_unknown;
  
    filename = find_main_filename ();
-@@ -2662,7 +2665,7 @@ init_filename_language_table (void)
+@@ -2660,7 +2663,7 @@ init_filename_language_table (void)
  }
  
  enum language
@@ -10802,7 +10800,7 @@ index 62e6b97..00dc613 100644
  	  ms_type = 'S';
  	  break;
 diff --git a/gdb/symtab.c b/gdb/symtab.c
-index 9472c24..c3b1792 100644
+index 2c4c9e4..28f0450 100644
 --- a/gdb/symtab.c
 +++ b/gdb/symtab.c
 @@ -1295,16 +1295,25 @@ lookup_symbol_aux_symtabs (int block_index, const char *name,
@@ -10971,7 +10969,7 @@ index bedc10a..dc284e4 100644
  /* symtab.c */
  
 diff --git a/gdb/target.c b/gdb/target.c
-index 862df4e..a8f1bdd 100644
+index 4cabcbd..34b3b60 100644
 --- a/gdb/target.c
 +++ b/gdb/target.c
 @@ -123,6 +123,8 @@ static int debug_to_insert_watchpoint (CORE_ADDR, int, int,
@@ -11001,7 +10999,7 @@ index 862df4e..a8f1bdd 100644
    de_fault (to_stopped_by_watchpoint,
  	    (int (*) (void))
  	    return_zero);
-@@ -3441,6 +3447,19 @@ debug_to_remove_watchpoint (CORE_ADDR addr, int len, int type,
+@@ -3440,6 +3446,19 @@ debug_to_remove_watchpoint (CORE_ADDR addr, int len, int type,
    return retval;
  }
  
@@ -11021,7 +11019,7 @@ index 862df4e..a8f1bdd 100644
  static void
  debug_to_terminal_init (void)
  {
-@@ -3688,6 +3707,7 @@ setup_target_debug (void)
+@@ -3687,6 +3706,7 @@ setup_target_debug (void)
    current_target.to_remove_hw_breakpoint = debug_to_remove_hw_breakpoint;
    current_target.to_insert_watchpoint = debug_to_insert_watchpoint;
    current_target.to_remove_watchpoint = debug_to_remove_watchpoint;
@@ -14208,7 +14206,7 @@ index 0000000..226dc5d
 +  call foo (g, h)
 +end
 diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
-index 1aed252..593aa55 100644
+index fc8bccc..e053813 100644
 --- a/gdb/testsuite/gdb.gdb/selftest.exp
 +++ b/gdb/testsuite/gdb.gdb/selftest.exp
 @@ -92,6 +92,10 @@ proc do_steps_and_nexts {} {
@@ -15388,7 +15386,7 @@ index 0000000..1dc93ab
 +    test child FOLLOW_CHILD
 +}
 diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
-index b5b3362..d916e94 100644
+index 20e2fb7..b27d25c 100644
 --- a/gdb/testsuite/lib/gdb.exp
 +++ b/gdb/testsuite/lib/gdb.exp
 @@ -27,6 +27,7 @@ if {$tool == ""} {
@@ -15494,7 +15492,7 @@ index 0000000..b8e9836
 +    return 0
 +}
 diff --git a/gdb/thread.c b/gdb/thread.c
-index 2fdc7f9..2a5d0f1 100644
+index 0b291ba..ae3e4ff 100644
 --- a/gdb/thread.c
 +++ b/gdb/thread.c
 @@ -90,6 +90,16 @@ delete_step_resume_breakpoint (struct thread_info *tp)
@@ -15528,7 +15526,7 @@ index 2fdc7f9..2a5d0f1 100644
  
    discard_all_intermediate_continuations_thread (tp);
 diff --git a/gdb/top.c b/gdb/top.c
-index 93447fe..d6875a7 100644
+index b29e68d..8edac70 100644
 --- a/gdb/top.c
 +++ b/gdb/top.c
 @@ -337,6 +337,7 @@ void
diff --git a/gdb-upstream.patch b/gdb-upstream.patch
index e16f47f..87d3f1d 100644
--- a/gdb-upstream.patch
+++ b/gdb-upstream.patch
@@ -1,386 +1,3 @@
-https://bugzilla.redhat.com/show_bug.cgi?id=620930
-
-http://sourceware.org/ml/gdb-cvs/2010-08/msg00031.html
-
-### src/gdb/ChangeLog	2010/08/06 19:45:58	1.12064
-### src/gdb/ChangeLog	2010/08/07 15:00:36	1.12065
-## -1,3 +1,22 @@
-+2010-08-07  Jan Kratochvil  <jan.kratochvil at redhat.com>
-+
-+	* defs.h (make_cleanup_restore_uinteger, make_cleanup_restore_ui_file)
-+	(make_cleanup_restore_page_info)
-+	(set_batch_flag_and_make_cleanup_restore_page_info): New declarations.
-+	* gdbcmd.h (execute_command_to_string): New declaration.
-+	* python/python.c (struct restore_ui_file_closure, restore_ui_file)
-+	(make_cleanup_restore_ui_file): Move to utils.c
-+	(execute_gdb_command) <to_string>: Move ...
-+	* top.c (execute_command_to_string): ... here.  Call
-+	set_batch_flag_and_make_cleanup_restore_page_info.
-+	* utils.c (make_cleanup_restore_integer): New source file blank line.
-+	(make_cleanup_restore_uinteger): New.
-+	(struct restore_ui_file_closure, do_restore_ui_file)
-+	(make_cleanup_restore_ui_file): Move here from python/python.c.
-+	(init_page_info) <batch_flag>
-+	(do_restore_page_info_cleanup, make_cleanup_restore_page_info)
-+	(set_batch_flag_and_make_cleanup_restore_page_info): New.
-+
- 2010-08-06  Maciej W. Rozycki  <macro at codesourcery.com>
- 
- 	* thread.c (add_thread_silent): Use null_ptid instead of
-### src/gdb/testsuite/ChangeLog	2010/08/02 23:41:18	1.2405
-### src/gdb/testsuite/ChangeLog	2010/08/07 15:00:38	1.2406
-## -1,3 +1,10 @@
-+2010-08-07  Jan Kratochvil  <jan.kratochvil at redhat.com>
-+
-+	* gdb.python/python.exp (show height, set height 10)
-+	(verify pagination beforehand, verify pagination beforehand: q)
-+	(gdb.execute does not page, verify pagination afterwards)
-+	(verify pagination afterwards: q): New.
-+
- 2010-08-02  Doug Evans  <dje at google.com>
- 
- 	* gdb.cp/namespace.exp: When "print ::cOtherFileClassVar" fails
-### src/gdb/doc/ChangeLog	2010/07/31 15:34:41	1.1093
-### src/gdb/doc/ChangeLog	2010/08/07 15:00:38	1.1094
-## -1,3 +1,9 @@
-+2010-08-07  Jan Kratochvil  <jan.kratochvil at redhat.com>
-+	    Eli Zaretskii <eliz at gnu.org>
-+
-+	* gdb.texinfo (Mode Options) <-batch>
-+	(Basic Python) <gdb.execute>: Describe setting width and height.
-+
- 2010-07-31  Paul Pluzhnikov  <ppluzhnikov at google.com>
- 
- 	* gdb.texinfo (Threads): Document 'debug libthread-db'.
-Index: gdb-7.1.90.20100806/gdb/defs.h
-===================================================================
---- gdb-7.1.90.20100806.orig/gdb/defs.h	2010-08-07 17:18:27.000000000 +0200
-+++ gdb-7.1.90.20100806/gdb/defs.h	2010-08-07 17:18:31.000000000 +0200
-@@ -351,6 +351,10 @@ struct obstack;
- extern struct cleanup *make_cleanup_obstack_free (struct obstack *obstack);
- 
- extern struct cleanup *make_cleanup_restore_integer (int *variable);
-+extern struct cleanup *make_cleanup_restore_uinteger (unsigned int *variable);
-+
-+extern struct cleanup *
-+  make_cleanup_restore_ui_file (struct ui_file **variable);
- 
- extern struct cleanup *make_final_cleanup (make_cleanup_ftype *, void *);
- 
-@@ -383,6 +387,10 @@ extern int yquery (const char *, ...) AT
- 
- extern void init_page_info (void);
- 
-+extern struct cleanup *make_cleanup_restore_page_info (void);
-+extern struct cleanup *
-+  set_batch_flag_and_make_cleanup_restore_page_info (void);
-+
- extern char *gdb_realpath (const char *);
- extern char *xfullpath (const char *);
- 
-Index: gdb-7.1.90.20100806/gdb/gdbcmd.h
-===================================================================
---- gdb-7.1.90.20100806.orig/gdb/gdbcmd.h	2010-08-07 17:18:27.000000000 +0200
-+++ gdb-7.1.90.20100806/gdb/gdbcmd.h	2010-08-07 17:18:40.000000000 +0200
-@@ -128,6 +128,8 @@ extern void execute_command (char *, int
- 
- enum command_control_type execute_control_command (struct command_line *);
- 
-+extern char *execute_command_to_string (char *p, int from_tty);
-+
- extern void print_command_line (struct command_line *, unsigned int,
- 				struct ui_file *);
- extern void print_command_lines (struct ui_out *,
-Index: gdb-7.1.90.20100806/gdb/top.c
-===================================================================
---- gdb-7.1.90.20100806.orig/gdb/top.c	2010-08-07 17:18:27.000000000 +0200
-+++ gdb-7.1.90.20100806/gdb/top.c	2010-08-07 17:18:31.000000000 +0200
-@@ -458,6 +458,39 @@ execute_command (char *p, int from_tty)
-     }
- }
- 
-+/* Run execute_command for P and FROM_TTY.  Capture its output into the
-+   returned string, do not display it to the screen.  BATCH_FLAG will be
-+   temporarily set to true.  */
-+
-+char *
-+execute_command_to_string (char *p, int from_tty)
-+{
-+  struct ui_file *str_file;
-+  struct cleanup *cleanup;
-+  char *retval;
-+
-+  /* GDB_STDOUT should be better already restored during these
-+     restoration callbacks.  */
-+  cleanup = set_batch_flag_and_make_cleanup_restore_page_info ();
-+
-+  str_file = mem_fileopen ();
-+
-+  make_cleanup_restore_ui_file (&gdb_stdout);
-+  make_cleanup_restore_ui_file (&gdb_stderr);
-+  make_cleanup_ui_file_delete (str_file);
-+
-+  gdb_stdout = str_file;
-+  gdb_stderr = str_file;
-+
-+  execute_command (p, from_tty);
-+
-+  retval = ui_file_xstrdup (str_file, NULL);
-+
-+  do_cleanups (cleanup);
-+
-+  return retval;
-+}
-+
- /* Read commands from `instream' and execute them
-    until end of file or error reading instream.  */
- 
-Index: gdb-7.1.90.20100806/gdb/utils.c
-===================================================================
---- gdb-7.1.90.20100806.orig/gdb/utils.c	2010-08-07 17:18:27.000000000 +0200
-+++ gdb-7.1.90.20100806/gdb/utils.c	2010-08-07 17:18:31.000000000 +0200
-@@ -339,6 +339,7 @@ restore_integer (void *p)
- 
- /* Remember the current value of *VARIABLE and make it restored when the cleanup
-    is run.  */
-+
- struct cleanup *
- make_cleanup_restore_integer (int *variable)
- {
-@@ -352,6 +353,43 @@ make_cleanup_restore_integer (int *varia
- 			   xfree);
- }
- 
-+/* Remember the current value of *VARIABLE and make it restored when the cleanup
-+   is run.  */
-+
-+struct cleanup *
-+make_cleanup_restore_uinteger (unsigned int *variable)
-+{
-+  return make_cleanup_restore_integer ((int *) variable);
-+}
-+
-+struct restore_ui_file_closure
-+{
-+  struct ui_file **variable;
-+  struct ui_file *value;
-+};
-+
-+static void
-+do_restore_ui_file (void *p)
-+{
-+  struct restore_ui_file_closure *closure = p;
-+
-+  *(closure->variable) = closure->value;
-+}
-+
-+/* Remember the current value of *VARIABLE and make it restored when
-+   the cleanup is run.  */
-+
-+struct cleanup *
-+make_cleanup_restore_ui_file (struct ui_file **variable)
-+{
-+  struct restore_ui_file_closure *c = XNEW (struct restore_ui_file_closure);
-+
-+  c->variable = variable;
-+  c->value = *variable;
-+
-+  return make_cleanup_dtor (do_restore_ui_file, (void *) c, xfree);
-+}
-+
- struct cleanup *
- make_my_cleanup2 (struct cleanup **pmy_chain, make_cleanup_ftype *function,
- 		  void *arg,  void (*free_arg) (void *))
-@@ -2034,6 +2072,12 @@ static int wrap_column;
- void
- init_page_info (void)
- {
-+  if (batch_flag)
-+    {
-+      lines_per_page = UINT_MAX;
-+      chars_per_line = UINT_MAX;
-+    }
-+  else
- #if defined(TUI)
-   if (!tui_get_command_dimension (&chars_per_line, &lines_per_page))
- #endif
-@@ -2078,6 +2122,44 @@ init_page_info (void)
-   set_width ();
- }
- 
-+/* Helper for make_cleanup_restore_page_info.  */
-+
-+static void
-+do_restore_page_info_cleanup (void *arg)
-+{
-+  set_screen_size ();
-+  set_width ();
-+}
-+
-+/* Provide cleanup for restoring the terminal size.  */
-+
-+struct cleanup *
-+make_cleanup_restore_page_info (void)
-+{
-+  struct cleanup *back_to;
-+
-+  back_to = make_cleanup (do_restore_page_info_cleanup, NULL);
-+  make_cleanup_restore_uinteger (&lines_per_page);
-+  make_cleanup_restore_uinteger (&chars_per_line);
-+
-+  return back_to;
-+}
-+
-+/* Temporarily set BATCH_FLAG and the associated unlimited terminal size.
-+   Provide cleanup for restoring the original state.  */
-+
-+struct cleanup *
-+set_batch_flag_and_make_cleanup_restore_page_info (void)
-+{
-+  struct cleanup *back_to = make_cleanup_restore_page_info ();
-+  
-+  make_cleanup_restore_integer (&batch_flag);
-+  batch_flag = 1;
-+  init_page_info ();
-+
-+  return back_to;
-+}
-+
- /* Set the screen size based on LINES_PER_PAGE and CHARS_PER_LINE.  */
- 
- static void
-Index: gdb-7.1.90.20100806/gdb/doc/gdb.texinfo
-===================================================================
---- gdb-7.1.90.20100806.orig/gdb/doc/gdb.texinfo	2010-08-07 17:18:27.000000000 +0200
-+++ gdb-7.1.90.20100806/gdb/doc/gdb.texinfo	2010-08-07 17:18:31.000000000 +0200
-@@ -1031,9 +1031,9 @@ Run in batch mode.  Exit with status @co
- command files specified with @samp{-x} (and all commands from
- initialization files, if not inhibited with @samp{-n}).  Exit with
- nonzero status if an error occurs in executing the @value{GDBN} commands
--in the command files.  Batch mode also disables pagination;
-- at pxref{Screen Size} and acts as if @kbd{set confirm off} were in
--effect (@pxref{Messages/Warnings}).
-+in the command files.  Batch mode also disables pagination, sets unlimited
-+terminal width and height @pxref{Screen Size}, and acts as if @kbd{set confirm
-+off} were in effect (@pxref{Messages/Warnings}).
- 
- Batch mode may be useful for running @value{GDBN} as a filter, for
- example to download and run a program on another computer; in order to
-@@ -20432,7 +20432,9 @@ By default, any output produced by @var{
- @value{GDBN}'s standard output.  If the @var{to_string} parameter is
- @code{True}, then output will be collected by @code{gdb.execute} and
- returned as a string.  The default is @code{False}, in which case the
--return value is @code{None}.
-+return value is @code{None}.  If @var{to_string} is @code{True}, the
-+ at value{GDBN} virtual terminal will be temporarily set to unlimited width
-+and height, and its pagination will be disabled; @pxref{Screen Size}.
- @end defun
- 
- @findex gdb.breakpoints
-Index: gdb-7.1.90.20100806/gdb/python/python.c
-===================================================================
---- gdb-7.1.90.20100806.orig/gdb/python/python.c	2010-08-07 17:18:27.000000000 +0200
-+++ gdb-7.1.90.20100806/gdb/python/python.c	2010-08-07 17:18:31.000000000 +0200
-@@ -309,33 +309,6 @@ gdbpy_target_wide_charset (PyObject *sel
-   return PyUnicode_Decode (cset, strlen (cset), host_charset (), NULL);
- }
- 
--struct restore_ui_file_closure
--{
--  struct ui_file **variable;
--  struct ui_file *value;
--};
--
--static void
--restore_ui_file (void *p)
--{
--  struct restore_ui_file_closure *closure = p;
--
--  *(closure->variable) = closure->value;
--}
--
--/* Remember the current value of *VARIABLE and make it restored when
--   the cleanup is run.  */
--struct cleanup *
--make_cleanup_restore_ui_file (struct ui_file **variable)
--{
--  struct restore_ui_file_closure *c = XNEW (struct restore_ui_file_closure);
--
--  c->variable = variable;
--  c->value = *variable;
--
--  return make_cleanup_dtor (restore_ui_file, (void *) c, xfree);
--}
--
- /* A Python function which evaluates a string using the gdb CLI.  */
- 
- static PyObject *
-@@ -376,27 +349,15 @@ execute_gdb_command (PyObject *self, PyO
-       /* Copy the argument text in case the command modifies it.  */
-       char *copy = xstrdup (arg);
-       struct cleanup *cleanup = make_cleanup (xfree, copy);
--      struct ui_file *str_file = NULL;
- 
-       if (to_string)
-+	result = execute_command_to_string (copy, from_tty);
-+      else
- 	{
--	  str_file = mem_fileopen ();
--
--	  make_cleanup_restore_ui_file (&gdb_stdout);
--	  make_cleanup_restore_ui_file (&gdb_stderr);
--	  make_cleanup_ui_file_delete (str_file);
--
--	  gdb_stdout = str_file;
--	  gdb_stderr = str_file;
-+	  result = NULL;
-+	  execute_command (copy, from_tty);
- 	}
- 
--      execute_command (copy, from_tty);
--
--      if (str_file)
--	result = ui_file_xstrdup (str_file, NULL);
--      else
--	result = NULL;
--
-       do_cleanups (cleanup);
-     }
-   GDB_PY_HANDLE_EXCEPTION (except);
-Index: gdb-7.1.90.20100806/gdb/testsuite/gdb.python/python.exp
-===================================================================
---- gdb-7.1.90.20100806.orig/gdb/testsuite/gdb.python/python.exp	2010-08-07 17:18:27.000000000 +0200
-+++ gdb-7.1.90.20100806/gdb/testsuite/gdb.python/python.exp	2010-08-07 17:18:31.000000000 +0200
-@@ -87,3 +87,26 @@ gdb_test "python import itertools; print
- gdb_test_no_output \
-     "python x = gdb.execute('printf \"%d\", 23', to_string = True)"
- gdb_test "python print x" "23"
-+
-+# Test (no) pagination of the executed command.
-+gdb_test "show height" {Number of lines gdb thinks are in a page is unlimited\.}
-+set lines 10
-+gdb_test_no_output "set height $lines"
-+
-+set test "verify pagination beforehand"
-+gdb_test_multiple "python print \"\\n\" * $lines" $test {
-+    -re "---Type <return> to continue, or q <return> to quit---$" {
-+	pass $test
-+    }
-+}
-+gdb_test "q" "Quit" "verify pagination beforehand: q"
-+
-+gdb_test "python if gdb.execute('python print \"\\\\n\" * $lines', to_string=True) == \"\\n\" * [expr $lines + 1]: print \"yes\"" "yes" "gdb.execute does not page"
-+
-+set test "verify pagination afterwards"
-+gdb_test_multiple "python print \"\\n\" * $lines" $test {
-+    -re "---Type <return> to continue, or q <return> to quit---$" {
-+	pass $test
-+    }
-+}
-+gdb_test "q" "Quit" "verify pagination afterwards: q"
-
-
-
 https://bugzilla.redhat.com/show_bug.cgi?id=610986
 http://sourceware.org/ml/gdb-cvs/2010-08/msg00112.html
 
diff --git a/gdb.spec b/gdb.spec
index 11081b8..7ec9cb0 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -34,11 +34,11 @@ Name: gdb%{?_with_debug:-debug}
 # Set version to contents of gdb/version.in.
 # NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3
 # and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch).
-Version: 7.1.90.20100806
+Version: 7.2
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 12%{?_with_upstream:.upstream}%{dist}
+Release: 1%{?_with_upstream:.upstream}%{dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
 Group: Development/Debuggers
@@ -1066,6 +1066,9 @@ fi
 %endif
 
 %changelog
+* Fri Sep  3 2010 Dan Horák <dan[at]danny.cz> - 7.2-1.fc14
+- Formal update to the final FSF GDB release.
+
 * Tue Aug 24 2010 Dan Horák <dan[at]danny.cz> - 7.1.90.20100806-12.fc14
 - libinproctrace doesn't exist on s390(x)
 
diff --git a/sources b/sources
index 9601ee8..6c2d734 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-37672a43bf094a9d64f252611e384524  gdb-7.1.90.20100806.tar.bz2
 64260e6c56979ee750a01055f16091a5  gdb-7.2.tar.bz2


More information about the scm-commits mailing list