rpms/gdb/F-12 gdb-core-open-vdso-warning.patch, NONE, 1.1 .cvsignore, 1.42, 1.43 gdb-6.3-pie-20050110.patch, 1.25, 1.26 gdb-archer.patch, 1.33, 1.34 gdb.spec, 1.391, 1.392 sources, 1.41, 1.42

Jan Kratochvil jkratoch at fedoraproject.org
Wed Oct 7 19:17:20 UTC 2009


Author: jkratoch

Update of /cvs/pkgs/rpms/gdb/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv4080

Modified Files:
	.cvsignore gdb-6.3-pie-20050110.patch gdb-archer.patch 
	gdb.spec sources 
Added Files:
	gdb-core-open-vdso-warning.patch 
Log Message:
* Wed Oct  7 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0-1
- Formal upgrade to the final FSF GDB release gdb-7.0.
- Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
- archer-jankratochvil-fedora12 commit: ce4ead356654b951a49ca78d81ebfff95e758bf5


gdb-core-open-vdso-warning.patch:
 solib-svr4.c |   14 ++++++++++++--
 solib.c      |    7 +++++++
 2 files changed, 19 insertions(+), 2 deletions(-)

--- NEW FILE gdb-core-open-vdso-warning.patch ---
http://sourceware.org/ml/gdb-patches/2009-10/msg00142.html
Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map:  Input/output error.

Hi,

GDB currently always prints on loading a core file:
	warning: Can't read pathname for load map: Input/output error.

The patch is not nice but it was WONTFIXed on the glibc side in:
	http://sourceware.org/ml/libc-alpha/2009-10/msg00001.html

The same message in GDB PR 8882 and glibc PR 387 was for ld-linux.so.2 l_name
but that one is now ignored thanks to IGNORE_FIRST_LINK_MAP_ENTRY.

This fix is intended for Linux system vDSO l_name which is a second entry in
the DSO list.

Regression tested on {x86_86,x86_64-m32,i686}-fedora11-linux-gnu.


Thanks,
Jan


gdb/
2009-10-06  Jan Kratochvil  <jan.kratochvil at redhat.com>

	Do not print false warning on reading core file with vDSO on GNU/Linux.
	* solib-svr4.c (svr4_current_sos): Suppress the warning if
	MASTER_SO_LIST is still NULL.
	* solib.c (update_solib_list): New variable saved_so_list_head.
	Conditionally restart the function.

[ Context backport.  ]

--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1097,8 +1097,18 @@ svr4_current_sos (void)
 	  target_read_string (LM_NAME (new), &buffer,
 			      SO_NAME_MAX_PATH_SIZE - 1, &errcode);
 	  if (errcode != 0)
-	    warning (_("Can't read pathname for load map: %s."),
-		     safe_strerror (errcode));
+	    {
+	      /* During the first ever DSO list reading some strings may be
+		 unreadable as residing in the ld.so readonly memory not being
+		 present in a dumped core file.  Delay the error check after
+		 the first pass of DSO list scanning when ld.so should be
+		 already mapped in and all the DSO list l_name memory gets
+		 readable.  */
+
+	      if (master_so_list () != NULL)
+		warning (_("Can't read pathname for load map: %s."),
+			 safe_strerror (errcode));
+	    }
 	  else
 	    {
 	      struct build_id *build_id;
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -538,6 +538,7 @@ update_solib_list (int from_tty, struct target_ops *target)
   struct target_so_ops *ops = solib_ops (target_gdbarch);
   struct so_list *inferior = ops->current_sos();
   struct so_list *gdb, **gdb_link;
+  struct so_list *saved_so_list_head = so_list_head;
 
   /* We can reach here due to changing solib-search-path or the
      sysroot, before having any inferior.  */
@@ -668,6 +669,12 @@ update_solib_list (int from_tty, struct target_ops *target)
 	  observer_notify_solib_loaded (i);
 	}
     }
+
+  /* If this was the very first DSO list scan and we possibly read in ld.so
+     recheck all the formerly unreadable DSO names strings.  */
+
+  if (saved_so_list_head == NULL && so_list_head != NULL)
+    update_solib_list (from_tty, target);
 }
 
 



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/.cvsignore,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -p -r1.42 -r1.43
--- .cvsignore	30 Sep 2009 21:02:25 -0000	1.42
+++ .cvsignore	7 Oct 2009 19:17:19 -0000	1.43
@@ -1,2 +1,2 @@
 libstdc++-v3-python-r151798.tar.xz
-gdb-6.8.91.20090930.tar.bz2
+gdb-7.0.tar.bz2

gdb-6.3-pie-20050110.patch:
 amd64-tdep.c  |   71 +++++++-
 auxv.c        |   24 +-
 auxv.h        |    4 
 dwarf2read.c  |    2 
 elfread.c     |    2 
 infcmd.c      |    3 
 infrun.c      |    4 
 linux-tdep.c  |    2 
 objfiles.c    |   11 +
 solib-svr4.c  |  505 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 solib.c       |   83 +++++++--
 solist.h      |    8 
 symfile-mem.c |    2 
 symfile.c     |   23 +-
 symfile.h     |    8 
 target.h      |    2 
 16 files changed, 628 insertions(+), 126 deletions(-)

Index: gdb-6.3-pie-20050110.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/gdb-6.3-pie-20050110.patch,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -p -r1.25 -r1.26
--- gdb-6.3-pie-20050110.patch	25 Sep 2009 11:06:47 -0000	1.25
+++ gdb-6.3-pie-20050110.patch	7 Oct 2009 19:17:19 -0000	1.26
@@ -705,7 +705,7 @@ Index: gdb-6.8.91.20090925/gdb/solib-svr
  			      SO_NAME_MAX_PATH_SIZE - 1, &errcode);
  	  if (errcode != 0)
 @@ -1101,63 +1336,76 @@ svr4_current_sos (void)
- 		     safe_strerror (errcode));
+ 	    }
  	  else
  	    {
 -	      struct build_id *build_id;

gdb-archer.patch:
 Makefile.in                                              |   92 
 NEWS                                                     |    7 
 ada-lang.c                                               |   43 
 amd64-linux-nat.c                                        |   45 
 block.c                                                  |   24 
 block.h                                                  |   12 
 breakpoint.c                                             |  763 ++++--
 breakpoint.h                                             |   21 
 c-exp.y                                                  |  240 ++
 c-lang.c                                                 |    6 
 c-typeprint.c                                            |   47 
 cli/cli-cmds.c                                           |   72 
 coffread.c                                               |    3 
 config.in                                                |    8 
 config/i386/nm-i386.h                                    |  125 +
 config/i386/nm-linux64.h                                 |   54 
 config/mips/nm-irix5.h                                   |   44 
 configure                                                |   76 
 configure.ac                                             |   47 
 cp-name-parser.y                                         |    5 
 cp-namespace.c                                           |  281 +-
 cp-support.c                                             |  123 +
 cp-support.h                                             |   50 
 dbxread.c                                                |    1 
 doc/gdb.texinfo                                          |  438 +++
 doc/gdbint.texinfo                                       |   62 
 doc/observer.texi                                        |    5 
 dwarf2-frame.c                                           |    9 
 dwarf2expr.c                                             |    7 
 dwarf2expr.h                                             |    2 
 dwarf2loc.c                                              |  227 +
 dwarf2loc.h                                              |    6 
 dwarf2read.c                                             | 1758 ++++++++++-----
 elfread.c                                                |   11 
 eval.c                                                   |  170 +
 expression.h                                             |   11 
 f-exp.y                                                  |    4 
 f-lang.c                                                 |  457 ---
 f-lang.h                                                 |   45 
 f-typeprint.c                                            |   36 
 f-valprint.c                                             |  267 --
 findcmd.c                                                |  111 
 findvar.c                                                |  126 -
 frame.c                                                  |    8 
 gdbinit.in                                               |   10 
 gdbserver/linux-i386-low.c                               |  210 +
 gdbserver/linux-x86-64-low.c                             |  184 +
 gdbthread.h                                              |    7 
 gdbtypes.c                                               |  599 ++++-
 gdbtypes.h                                               |  146 +
 gnu-v3-abi.c                                             |   18 
 i386-linux-nat.c                                         |   47 
 i386-nat.c                                               |   49 
 i386-nat.h                                               |   17 
 infcall.c                                                |    8 
 infcmd.c                                                 |   34 
 inferior.h                                               |    2 
 infrun.c                                                 |  190 +
 jv-lang.c                                                |    1 
 language.h                                               |    1 
 linespec.c                                               |   73 
 linux-nat.c                                              |   88 
 linux-nat.h                                              |    6 
 m2-lang.c                                                |    1 
 machoread.c                                              |    1 
 main.c                                                   |   80 
 maint.c                                                  |    8 
 mdebugread.c                                             |    2 
 mi/mi-cmd-var.c                                          |    1 
 mi/mi-main.c                                             |    2 
 mipsread.c                                               |    1 
 objfiles.c                                               |   14 
 objfiles.h                                               |   21 
 parse.c                                                  |  154 +
 parser-defs.h                                            |   25 
 ppc-linux-nat.c                                          |   19 
 printcmd.c                                               |   90 
 python/lib/gdb/FrameIterator.py                          |   33 
 python/lib/gdb/FrameWrapper.py                           |  112 
 python/lib/gdb/__init__.py                               |   19 
 python/lib/gdb/backtrace.py                              |   42 
 python/lib/gdb/command/__init__.py                       |    1 
 python/lib/gdb/command/alias.py                          |   59 
 python/lib/gdb/command/backtrace.py                      |  106 
 python/lib/gdb/command/ignore_errors.py                  |   37 
 python/lib/gdb/command/pahole.py                         |   75 
 python/lib/gdb/command/require.py                        |   57 
 python/lib/gdb/command/save_breakpoints.py               |   65 
 python/lib/gdb/command/upto.py                           |  129 +
 python/lib/gdb/function/__init__.py                      |    1 
 python/lib/gdb/function/caller_is.py                     |   58 
 python/lib/gdb/function/in_scope.py                      |   47 
 python/py-block.c                                        |  265 ++
 python/py-breakpoint.c                                   |  665 +++++
 python/py-cmd.c                                          |   17 
 python/py-frame.c                                        |  116 
 python/py-hooks.c                                        |   50 
 python/py-inferior.c                                     |  926 +++++++
 python/py-infthread.c                                    |  285 ++
 python/py-membuf.c                                       |  268 ++
 python/py-param.c                                        |  606 +++++
 python/py-prettyprint.c                                  |   21 
 python/py-symbol.c                                       |  336 ++
 python/py-symtab.c                                       |  322 ++
 python/py-type.c                                         |  170 +
 python/py-utils.c                                        |   46 
 python/py-value.c                                        |   55 
 python/python-internal.h                                 |   69 
 python/python.c                                          |  384 +++
 python/python.h                                          |    4 
 scm-lang.c                                               |    1 
 scm-valprint.c                                           |    4 
 solib-darwin.c                                           |    1 
 solib-spu.c                                              |    7 
 solib-svr4.c                                             |    4 
 solib.c                                                  |    3 
 solist.h                                                 |    2 
 somread.c                                                |    1 
 spu-tdep.c                                               |    2 
 stabsread.c                                              |    4 
 stack.c                                                  |   38 
 symfile.c                                                |   37 
 symfile.h                                                |   12 
 symmisc.c                                                |    4 
 symtab.c                                                 |  321 +-
 symtab.h                                                 |   20 
 target.c                                                 |   20 
 target.h                                                 |   41 
 testsuite/gdb.arch/powerpc-power7.exp                    |  175 +
 testsuite/gdb.arch/powerpc-power7.s                      |  107 
 testsuite/gdb.arch/x86_64-vla-typedef-foo.S              |  455 +++
 testsuite/gdb.arch/x86_64-vla-typedef.c                  |   43 
 testsuite/gdb.arch/x86_64-vla-typedef.exp                |   64 
 testsuite/gdb.base/arrayidx.c                            |    7 
 testsuite/gdb.base/arrayidx.exp                          |   10 
 testsuite/gdb.base/help.exp                              |    2 
 testsuite/gdb.base/lineno-makeup-func.c                  |   21 
 testsuite/gdb.base/lineno-makeup.c                       |   35 
 testsuite/gdb.base/lineno-makeup.exp                     |   78 
 testsuite/gdb.base/macscp.exp                            |    8 
 testsuite/gdb.base/radix.exp                             |    7 
 testsuite/gdb.base/valgrind-attach.c                     |   28 
 testsuite/gdb.base/valgrind-attach.exp                   |   94 
 testsuite/gdb.base/valgrind-attach.sh                    |   20 
 testsuite/gdb.base/vla-overflow.c                        |   30 
 testsuite/gdb.base/vla-overflow.exp                      |  108 
 testsuite/gdb.base/vla.c                                 |   55 
 testsuite/gdb.base/vla.exp                               |   62 
 testsuite/gdb.base/watchpoint-hw.c                       |    6 
 testsuite/gdb.base/watchpoint-hw.exp                     |   45 
 testsuite/gdb.cp/Makefile.in                             |    2 
 testsuite/gdb.cp/cp-relocate.exp                         |    6 
 testsuite/gdb.cp/cplusfuncs.cc                           |   10 
 testsuite/gdb.cp/cplusfuncs.exp                          |  225 +
 testsuite/gdb.cp/expand-sals.exp                         |    2 
 testsuite/gdb.cp/gdb9593.cc                              |  180 +
 testsuite/gdb.cp/gdb9593.exp                             |  185 +
 testsuite/gdb.cp/member-ptr.cc                           |   17 
 testsuite/gdb.cp/member-ptr.exp                          |   34 
 testsuite/gdb.cp/namespace-multiple-imports.cc           |   20 
 testsuite/gdb.cp/namespace-multiple-imports.exp          |   49 
 testsuite/gdb.cp/namespace-nested-imports.cc             |   36 
 testsuite/gdb.cp/namespace-nested-imports.exp            |   57 
 testsuite/gdb.cp/namespace-no-imports.cc                 |   37 
 testsuite/gdb.cp/namespace-no-imports.exp                |   76 
 testsuite/gdb.cp/namespace-recursive.cc                  |   47 
 testsuite/gdb.cp/namespace-recursive.exp                 |   75 
 testsuite/gdb.cp/namespace-stress.cc                     |   60 
 testsuite/gdb.cp/namespace-stress.exp                    |   50 
 testsuite/gdb.cp/namespace-using.cc                      |  128 -
 testsuite/gdb.cp/namespace-using.exp                     |  132 +
 testsuite/gdb.cp/namespace.exp                           |   23 
 testsuite/gdb.cp/overload.exp                            |    8 
 testsuite/gdb.cp/ovldbreak.exp                           |   46 
 testsuite/gdb.cp/shadowing.cc                            |   48 
 testsuite/gdb.cp/shadowing.exp                           |   91 
 testsuite/gdb.dwarf2/dw2-aranges.S                       |  140 +
 testsuite/gdb.dwarf2/dw2-aranges.exp                     |   40 
 testsuite/gdb.dwarf2/dw2-stripped.c                      |   42 
 testsuite/gdb.dwarf2/dw2-stripped.exp                    |   79 
 testsuite/gdb.dwarf2/dw2-struct-member-data-location.S   |   83 
 testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp |   37 
 testsuite/gdb.fortran/common-block.exp                   |  101 
 testsuite/gdb.fortran/common-block.f90                   |   67 
 testsuite/gdb.fortran/dwarf-stride.exp                   |   42 
 testsuite/gdb.fortran/dwarf-stride.f90                   |   40 
 testsuite/gdb.fortran/dynamic.exp                        |  145 +
 testsuite/gdb.fortran/dynamic.f90                        |   98 
 testsuite/gdb.fortran/library-module-lib.f90             |   28 
 testsuite/gdb.fortran/library-module-main.f90            |   23 
 testsuite/gdb.fortran/library-module.exp                 |   53 
 testsuite/gdb.fortran/logical.exp                        |   44 
 testsuite/gdb.fortran/logical.f90                        |   33 
 testsuite/gdb.fortran/module.exp                         |   28 
 testsuite/gdb.fortran/module.f90                         |   37 
 testsuite/gdb.fortran/string.exp                         |   59 
 testsuite/gdb.fortran/string.f90                         |   37 
 testsuite/gdb.gdb/selftest.exp                           |    4 
 testsuite/gdb.java/jnpe.exp                              |   72 
 testsuite/gdb.java/jnpe.java                             |   38 
 testsuite/gdb.opt/array-from-register-func.c             |   22 
 testsuite/gdb.opt/array-from-register.c                  |   28 
 testsuite/gdb.opt/array-from-register.exp                |   33 
 testsuite/gdb.opt/fortran-string.exp                     |   41 
 testsuite/gdb.opt/fortran-string.f90                     |   28 
 testsuite/gdb.python/py-cmd.exp                          |   27 
 testsuite/gdb.python/py-frame.exp                        |   48 
 testsuite/gdb.python/py-function.exp                     |   27 
 testsuite/gdb.python/py-inferior.c                       |   49 
 testsuite/gdb.python/py-inferior.exp                     |  201 +
 testsuite/gdb.python/py-infthread.c                      |   14 
 testsuite/gdb.python/py-infthread.exp                    |   58 
 testsuite/gdb.python/py-prettyprint.exp                  |   22 
 testsuite/gdb.python/py-template.exp                     |   25 
 testsuite/gdb.python/py-value.exp                        |   31 
 testsuite/gdb.python/python.exp                          |   27 
 testsuite/gdb.threads/watchpoint-fork-forkoff.c          |  175 +
 testsuite/gdb.threads/watchpoint-fork-mt.c               |  157 +
 testsuite/gdb.threads/watchpoint-fork.c                  |   57 
 testsuite/gdb.threads/watchpoint-fork.exp                |  130 +
 testsuite/gdb.threads/watchthreads-reorder.c             |  366 +++
 testsuite/gdb.threads/watchthreads-reorder.exp           |  105 
 testsuite/lib/cp-support.exp                             |    3 
 testsuite/lib/gdb.exp                                    |    1 
 testsuite/lib/python-support.exp                         |   53 
 thread.c                                                 |   18 
 top.c                                                    |    1 
 typeprint.c                                              |   14 
 typeprint.h                                              |    3 
 ui-file.c                                                |   20 
 ui-file.h                                                |    6 
 utils.c                                                  |    7 
 valarith.c                                               |   45 
 valops.c                                                 |  258 +-
 valprint.c                                               |    4 
 value.c                                                  |  150 +
 value.h                                                  |    8 
 varobj.c                                                 |   76 
 xcoffread.c                                              |    1 
 239 files changed, 18397 insertions(+), 2442 deletions(-)

Index: gdb-archer.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/gdb-archer.patch,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -p -r1.33 -r1.34
--- gdb-archer.patch	30 Sep 2009 21:02:25 -0000	1.33
+++ gdb-archer.patch	7 Oct 2009 19:17:19 -0000	1.34
@@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectAr
 http://sourceware.org/gdb/wiki/ArcherBranchManagement
 
 GIT snapshot:
-commit 7cb860f03e2437c97239334ebe240d06f45723e0
+commit ce4ead356654b951a49ca78d81ebfff95e758bf5
 
 branch `archer' - the merge of branches:
 archer-tromey-call-frame-cfa
@@ -19,12 +19,12 @@ archer-pmuldoon-next-over-throw
 
 
 diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index f5e1dde..73ee55c 100644
+index 7d53205..319fac4 100644
 --- a/gdb/Makefile.in
 +++ b/gdb/Makefile.in
 @@ -169,6 +169,10 @@ TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@
  # Did the user give us a --with-gdb-datadir option?
- GDB_DATADIR_PATH = @GDB_DATADIR_PATH@
+ GDB_DATADIR = @GDB_DATADIR@
  
 +# The argument to --with-pythondir.  If not given, this is
 +# GDB_DATADIR_PATH/python.
@@ -194,10 +194,10 @@ index f5e1dde..73ee55c 100644
  # Dependency tracking.  Most of this is conditional on GNU Make being
  # found by configure; if GNU Make is not found, we fall back to a
 diff --git a/gdb/NEWS b/gdb/NEWS
-index 4fc6dcd..6744b23 100644
+index 8d32c34..f7ea21b 100644
 --- a/gdb/NEWS
 +++ b/gdb/NEWS
-@@ -462,6 +462,13 @@ x86/x86_64 Darwin		i[34567]86-*-darwin*
+@@ -476,6 +476,13 @@ x86/x86_64 Darwin		i[34567]86-*-darwin*
  
  x86_64 MinGW			x86_64-*-mingw*
  
@@ -290,7 +290,7 @@ index 9b5d2c6..61676a9 100644
    ada_dump_subexp_body,
    ada_evaluate_subexp
 diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c
-index 7d8461c..a6d35d7 100644
+index 7d8461c..fc4b3e0 100644
 --- a/gdb/amd64-linux-nat.c
 +++ b/gdb/amd64-linux-nat.c
 @@ -270,6 +270,8 @@ amd64_linux_dr_get (ptid_t ptid, int regnum)
@@ -340,7 +340,7 @@ index 7d8461c..a6d35d7 100644
    return amd64_linux_dr_get (inferior_ptid, DR_STATUS);
  }
  
-+/* Unset VALUE bits in DR_STATUS in all LWPs of LWP_LIST.  */
++/* Unset MASK bits in DR_STATUS in all LWPs of LWP_LIST.  */
 +
 +static void
 +amd64_linux_dr_unset_status (unsigned long mask)
@@ -2900,7 +2900,7 @@ index 0000000..49ac420
 +#define TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT(SIZE) 1
 +
 diff --git a/gdb/configure b/gdb/configure
-index 99acc2f..a2ea1ae 100755
+index 46e7bfe..ea667f0 100755
 --- a/gdb/configure
 +++ b/gdb/configure
 @@ -676,6 +676,8 @@ REPORT_BUGS_TO
@@ -3015,7 +3015,7 @@ index 99acc2f..a2ea1ae 100755
  
    # Flags needed to compile Python code (taken from python-config --cflags).
 diff --git a/gdb/configure.ac b/gdb/configure.ac
-index b31d9b7..a1969bc 100644
+index 0e42182..e7f97cf 100644
 --- a/gdb/configure.ac
 +++ b/gdb/configure.ac
 @@ -107,6 +107,51 @@ AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this pat
@@ -3832,7 +3832,7 @@ index 7cb016d..bb9e35a 100644
    default_symfile_offsets, /* sym_offsets: parse user's offsets to
  			      internal form */
 diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
-index f16b6e2..fe328c7 100644
+index 1f98fa5..9e24482 100644
 --- a/gdb/doc/gdb.texinfo
 +++ b/gdb/doc/gdb.texinfo
 @@ -959,8 +959,10 @@ Connect to process ID @var{number}, as with the @code{attach} command.
@@ -3865,7 +3865,7 @@ index f16b6e2..fe328c7 100644
  @c resolve the situation of these eventually
  @item -tui
  @cindex @code{--tui}
-@@ -18650,7 +18662,7 @@ command:
+@@ -18660,7 +18672,7 @@ command:
  @table @code
  @kindex source
  @cindex execute commands from a file
@@ -3874,7 +3874,7 @@ index f16b6e2..fe328c7 100644
  Execute the command file @var{filename}.
  @end table
  
-@@ -18667,6 +18679,11 @@ If @code{-v}, for verbose mode, is given then @value{GDBN} displays
+@@ -18677,6 +18689,11 @@ If @code{-v}, for verbose mode, is given then @value{GDBN} displays
  each command as it is executed.  The option must be given before
  @var{filename}, and is interpreted as part of the filename anywhere else.
  
@@ -3886,7 +3886,7 @@ index f16b6e2..fe328c7 100644
  Commands that would ask for confirmation if used interactively proceed
  without asking when used in a command file.  Many @value{GDBN} commands that
  normally print messages to say what they are doing omit the messages
-@@ -18928,8 +18945,6 @@ containing @code{end}.  For example:
+@@ -18938,8 +18955,6 @@ containing @code{end}.  For example:
  
  @smallexample
  (@value{GDBP}) python
@@ -3895,7 +3895,7 @@ index f16b6e2..fe328c7 100644
  >print 23
  >end
  23
-@@ -18942,6 +18957,14 @@ in a Python script.  This can be controlled using @code{maint set
+@@ -18952,6 +18967,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.
@@ -3910,7 +3910,7 @@ index f16b6e2..fe328c7 100644
  @end table
  
  @node Python API
-@@ -18949,6 +18972,14 @@ disabled.
+@@ -18959,6 +18982,14 @@ disabled.
  @cindex python api
  @cindex programming in python
  
@@ -3925,7 +3925,7 @@ index f16b6e2..fe328c7 100644
  @cindex python stdout
  @cindex python pagination
  At startup, @value{GDBN} overrides Python's @code{sys.stdout} and
-@@ -18961,13 +18992,17 @@ situation, a Python @code{KeyboardInterrupt} exception is thrown.
+@@ -18971,13 +19002,17 @@ situation, a Python @code{KeyboardInterrupt} exception is thrown.
  * Basic Python::                Basic Python Functions.
  * Exception Handling::
  * Auto-loading::                Automatically loading Python code.
@@ -3944,7 +3944,7 @@ index f16b6e2..fe328c7 100644
  * Frames In Python::            Acessing inferior stack frames from Python.
  @end menu
  
-@@ -18994,6 +19029,12 @@ command as having originated from the user invoking it interactively.
+@@ -19004,6 +19039,12 @@ command as having originated from the user invoking it interactively.
  It must be a boolean value.  If omitted, it defaults to @code{False}.
  @end defun
  
@@ -3957,7 +3957,7 @@ index f16b6e2..fe328c7 100644
  @findex gdb.parameter
  @defun parameter parameter
  Return the value of a @value{GDBN} parameter.  @var{parameter} is a
-@@ -19010,6 +19051,7 @@ a Python value of the appropriate type, and returned.
+@@ -19020,6 +19061,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.
@@ -3965,7 +3965,7 @@ index f16b6e2..fe328c7 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
-@@ -19021,6 +19063,28 @@ If no exception is raised, the return value is always an instance of
+@@ -19031,6 +19073,28 @@ If no exception is raised, the return value is always an instance of
  @code{gdb.Value} (@pxref{Values From Inferior}).
  @end defun
  
@@ -3994,7 +3994,7 @@ index f16b6e2..fe328c7 100644
  @findex gdb.write
  @defun write string
  Print a string to @value{GDBN}'s paginated standard output stream.
-@@ -19035,6 +19099,11 @@ Flush @value{GDBN}'s paginated standard output stream.  Flushing
+@@ -19045,6 +19109,11 @@ Flush @value{GDBN}'s paginated standard output stream.  Flushing
  function.
  @end defun
  
@@ -4006,7 +4006,7 @@ index f16b6e2..fe328c7 100644
  @node Exception Handling
  @subsubsection Exception Handling
  @cindex python exceptions
-@@ -19171,6 +19240,13 @@ The type of this @code{gdb.Value}.  The value of this attribute is a
+@@ -19181,6 +19250,13 @@ The type of this @code{gdb.Value}.  The value of this attribute is a
  The following methods are provided:
  
  @table @code
@@ -4020,7 +4020,7 @@ index f16b6e2..fe328c7 100644
  @defmethod Value dereference
  For pointer data types, this method returns a new @code{gdb.Value} object
  whose contents is the object pointed to by the pointer.  For example, if
-@@ -19242,6 +19318,9 @@ module:
+@@ -19252,6 +19328,9 @@ module:
  This function looks up a type by name.  @var{name} is the name of the
  type to look up.  It must be a string.
  
@@ -4030,7 +4030,7 @@ index f16b6e2..fe328c7 100644
  Ordinarily, this function will return an instance of @code{gdb.Type}.
  If the named type cannot be found, it will throw an exception.
  @end defun
-@@ -19294,6 +19373,12 @@ This is @code{True} if the field is artificial, usually meaning that
+@@ -19304,6 +19383,12 @@ This is @code{True} if the field is artificial, usually meaning that
  it was provided by the compiler and not the user.  This attribute is
  always provided, and is @code{False} if the field is not artificial.
  
@@ -4043,7 +4043,7 @@ index f16b6e2..fe328c7 100644
  @item bitsize
  If the field is packed, or is a bitfield, then this will have a
  non-zero value, which is the size of the field in bits.  Otherwise,
-@@ -19346,7 +19431,7 @@ If the type does not have a target, this method will throw an
+@@ -19356,7 +19441,7 @@ If the type does not have a target, this method will throw an
  exception.
  @end defmethod
  
@@ -4052,7 +4052,7 @@ index f16b6e2..fe328c7 100644
  If this @code{gdb.Type} is an instantiation of a template, this will
  return a new @code{gdb.Type} which represents the type of the
  @var{n}th template argument.
-@@ -19354,7 +19439,8 @@ return a new @code{gdb.Type} which represents the type of the
+@@ -19364,7 +19449,8 @@ return a new @code{gdb.Type} which represents the type of the
  If this @code{gdb.Type} is not a template type, this will throw an
  exception.  Ordinarily, only C at t{++} code will have template types.
  
@@ -4062,7 +4062,7 @@ index f16b6e2..fe328c7 100644
  @end defmethod
  @end table
  
-@@ -19708,6 +19794,121 @@ import gdb.libstdcxx.v6
+@@ -19718,6 +19804,121 @@ import gdb.libstdcxx.v6
  gdb.libstdcxx.v6.register_printers (gdb.current_objfile ())
  @end smallexample
  
@@ -4184,7 +4184,7 @@ index f16b6e2..fe328c7 100644
  @node Commands In Python
  @subsubsection Commands In Python
  
-@@ -19960,6 +20161,135 @@ registration of the command with @value{GDBN}.  Depending on how the
+@@ -19970,6 +20171,135 @@ registration of the command with @value{GDBN}.  Depending on how the
  Python code is read into @value{GDBN}, you may need to import the
  @code{gdb} module explicitly.
  
@@ -4320,7 +4320,7 @@ index f16b6e2..fe328c7 100644
  @node Functions In Python
  @subsubsection Writing new convenience functions
  
-@@ -20064,6 +20394,82 @@ which is used to format the value.  @xref{Pretty Printing}, for more
+@@ -20074,6 +20404,82 @@ which is used to format the value.  @xref{Pretty Printing}, for more
  information.
  @end defivar
  
@@ -4403,7 +4403,7 @@ index f16b6e2..fe328c7 100644
  @node Frames In Python
  @subsubsection Acessing inferior stack frames from Python.
  
-@@ -20128,6 +20534,14 @@ function to a string.
+@@ -20138,6 +20544,14 @@ function to a string.
  Returns the frame's resume address.
  @end defmethod
  
@@ -4418,7 +4418,7 @@ index f16b6e2..fe328c7 100644
  @defmethod Frame older
  Return the frame that called this frame.
  @end defmethod
-@@ -20136,10 +20550,18 @@ Return the frame that called this frame.
+@@ -20146,10 +20560,18 @@ Return the frame that called this frame.
  Return the frame called by this frame.
  @end defmethod
  
@@ -10995,7 +10995,7 @@ index 0f9d44e..c910e88 100644
    /* We didn't find it; print the raw data.  */
    if (vbit)
 diff --git a/gdb/i386-linux-nat.c b/gdb/i386-linux-nat.c
-index fe848ff..170e6cd 100644
+index fe848ff..905dcc3 100644
 --- a/gdb/i386-linux-nat.c
 +++ b/gdb/i386-linux-nat.c
 @@ -586,6 +586,8 @@ i386_linux_store_inferior_registers (struct target_ops *ops,
@@ -11054,7 +11054,7 @@ index fe848ff..170e6cd 100644
    return i386_linux_dr_get (inferior_ptid, DR_STATUS);
  }
  
-+/* Unset VALUE bits in DR_STATUS in all LWPs of LWP_LIST.  */
++/* Unset MASK bits in DR_STATUS in all LWPs of LWP_LIST.  */
 +
 +static void
 +i386_linux_dr_unset_status (unsigned long mask)
@@ -11100,7 +11100,7 @@ index fe848ff..170e6cd 100644
  
    /* Override the default ptrace resume method.  */
 diff --git a/gdb/i386-nat.c b/gdb/i386-nat.c
-index ab1bd8a..ee330b8 100644
+index 325b4df..631ccd6 100644
 --- a/gdb/i386-nat.c
 +++ b/gdb/i386-nat.c
 @@ -137,8 +137,11 @@ struct i386_dr_low_type i386_dr_low;
@@ -11157,7 +11157,7 @@ index ab1bd8a..ee330b8 100644
  /* Return non-zero if we can watch a memory region that starts at
     address ADDR and whose length is LEN bytes.  */
  
-@@ -575,28 +598,7 @@ static int
+@@ -578,28 +601,7 @@ static int
  i386_stopped_by_watchpoint (void)
  {
    CORE_ADDR addr = 0;
@@ -11187,7 +11187,7 @@ index ab1bd8a..ee330b8 100644
  }
  
  /* Insert a hardware-assisted breakpoint at BP_TGT->placed_address.
-@@ -690,6 +692,7 @@ i386_use_watchpoints (struct target_ops *t)
+@@ -693,6 +695,7 @@ i386_use_watchpoints (struct target_ops *t)
    t->to_stopped_data_address = i386_stopped_data_address;
    t->to_insert_watchpoint = i386_insert_watchpoint;
    t->to_remove_watchpoint = i386_remove_watchpoint;
@@ -11236,6 +11236,39 @@ index f49b9f6..cd31958 100644
      int debug_register_length;
    };
  
+diff --git a/gdb/infcall.c b/gdb/infcall.c
+index c9d98cf..277399a 100644
+--- a/gdb/infcall.c
++++ b/gdb/infcall.c
+@@ -441,6 +441,7 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
+   struct gdbarch *gdbarch;
+   struct breakpoint *terminate_bp = NULL;
+   struct minimal_symbol *tm;
++  struct cleanup *terminate_bp_cleanup = NULL;
+   ptid_t call_thread_ptid;
+   struct gdb_exception e;
+   const char *name;
+@@ -772,7 +773,7 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
+ 
+   /* Register a clean-up for unwind_on_terminating_exception_breakpoint.  */
+   if (terminate_bp)
+-    make_cleanup_delete_breakpoint (terminate_bp);
++    terminate_bp_cleanup = make_cleanup_delete_breakpoint (terminate_bp);
+ 
+   /* - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP -
+      If you're looking to implement asynchronous dummy-frames, then
+@@ -987,6 +988,11 @@ When the function is done executing, GDB will silently stop."),
+       internal_error (__FILE__, __LINE__, _("... should not be here"));
+     }
+ 
++  /* If we get here and the std::terminate() breakpoint has been set,
++     it has to be cleaned manually.  */
++  if (terminate_bp)
++    do_cleanups (terminate_bp_cleanup);
++
+   /* If we get here the called FUNCTION ran to completion,
+      and the dummy frame has already been popped.  */
+ 
 diff --git a/gdb/infcmd.c b/gdb/infcmd.c
 index 9e98290..fab1892 100644
 --- a/gdb/infcmd.c
@@ -11349,7 +11382,7 @@ index f1b5d17..31add7d 100644
  
  extern void notice_new_inferior (ptid_t, int, int);
 diff --git a/gdb/infrun.c b/gdb/infrun.c
-index 1a83a25..2ee2164 100644
+index ff7c6b9..9d29b15 100644
 --- a/gdb/infrun.c
 +++ b/gdb/infrun.c
 @@ -45,6 +45,8 @@
@@ -11392,7 +11425,26 @@ index 1a83a25..2ee2164 100644
        /* This causes the eventpoints and symbol table to be reset.
           Must do this now, before trying to determine whether to
           stop.  */
-@@ -3468,23 +3480,33 @@ process_event_stop_test:
+@@ -2845,6 +2857,9 @@ targets should add new threads to the thread list themselves in non-stop mode.")
+     {
+       struct regcache *regcache = get_thread_regcache (ecs->ptid);
+       struct gdbarch *gdbarch = get_regcache_arch (regcache);
++      struct cleanup *old_chain = save_inferior_ptid ();
++
++      inferior_ptid = ecs->ptid;
+ 
+       fprintf_unfiltered (gdb_stdlog, "infrun: stop_pc = %s\n",
+                           paddress (gdbarch, stop_pc));
+@@ -2861,6 +2876,8 @@ targets should add new threads to the thread list themselves in non-stop mode.")
+             fprintf_unfiltered (gdb_stdlog,
+                                 "infrun: (no data address available)\n");
+ 	}
++
++      do_cleanups (old_chain);
+     }
+ 
+   if (stepping_past_singlestep_breakpoint)
+@@ -3468,23 +3485,33 @@ process_event_stop_test:
  
  	ecs->event_thread->stepping_over_breakpoint = 1;
  
@@ -11438,7 +11490,7 @@ index 1a83a25..2ee2164 100644
  	keep_going (ecs);
  	return;
  
-@@ -3496,6 +3518,53 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n");
+@@ -3496,6 +3523,53 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n");
  	gdb_assert (ecs->event_thread->step_resume_breakpoint != NULL);
  	delete_step_resume_breakpoint (ecs->event_thread);
  
@@ -11492,7 +11544,7 @@ index 1a83a25..2ee2164 100644
  	ecs->event_thread->stop_step = 1;
  	print_stop_reason (END_STEPPING_RANGE, 0);
  	stop_stepping (ecs);
-@@ -4500,6 +4569,96 @@ insert_longjmp_resume_breakpoint (struct gdbarch *gdbarch, CORE_ADDR pc)
+@@ -4500,6 +4574,96 @@ insert_longjmp_resume_breakpoint (struct gdbarch *gdbarch, CORE_ADDR pc)
      set_momentary_breakpoint_at_pc (gdbarch, pc, bp_longjmp_resume);
  }
  
@@ -11589,7 +11641,7 @@ index 1a83a25..2ee2164 100644
  static void
  stop_stepping (struct execution_control_state *ecs)
  {
-@@ -4568,6 +4727,8 @@ keep_going (struct execution_control_state *ecs)
+@@ -4568,6 +4732,8 @@ keep_going (struct execution_control_state *ecs)
  	    }
  	  if (e.reason < 0)
  	    {
@@ -18014,7 +18066,7 @@ index 49c0437..84a476e 100644
 +  return 1;
 +}
 diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c
-index 58bcee3..b2e7b7d 100644
+index 0146593..b82fcb6 100644
 --- a/gdb/python/py-value.c
 +++ b/gdb/python/py-value.c
 @@ -25,6 +25,7 @@
@@ -20070,7 +20122,7 @@ index e5d14fd..37fab72 100644
    current_target.to_stopped_data_address = debug_to_stopped_data_address;
    current_target.to_watchpoint_addr_within_range = debug_to_watchpoint_addr_within_range;
 diff --git a/gdb/target.h b/gdb/target.h
-index b1cb852..adff946 100644
+index b1cb852..3c06eba 100644
 --- a/gdb/target.h
 +++ b/gdb/target.h
 @@ -395,6 +395,7 @@ struct target_ops
@@ -20081,7 +20133,16 @@ index b1cb852..adff946 100644
      int (*to_stopped_by_watchpoint) (void);
      int to_have_steppable_watchpoint;
      int to_have_continuable_watchpoint;
-@@ -1166,6 +1167,15 @@ extern char *normal_pid_to_str (ptid_t ptid);
+@@ -1124,7 +1125,7 @@ extern char *normal_pid_to_str (ptid_t ptid);
+ /* Hardware watchpoint interfaces.  */
+ 
+ /* Returns non-zero if we were stopped by a hardware watchpoint (memory read or
+-   write).  */
++   write).  Only the INFERIOR_PTID task is being queried.  */
+ 
+ #define target_stopped_by_watchpoint \
+    (*current_target.to_stopped_by_watchpoint)
+@@ -1166,14 +1167,26 @@ extern char *normal_pid_to_str (ptid_t ptid);
  #define	target_remove_watchpoint(addr, len, type)	\
       (*current_target.to_remove_watchpoint) (addr, len, type)
  
@@ -20097,7 +20158,20 @@ index b1cb852..adff946 100644
  #define target_insert_hw_breakpoint(gdbarch, bp_tgt) \
       (*current_target.to_insert_hw_breakpoint) (gdbarch, bp_tgt)
  
-@@ -1203,6 +1213,20 @@ extern int target_search_memory (CORE_ADDR start_addr,
+ #define target_remove_hw_breakpoint(gdbarch, bp_tgt) \
+      (*current_target.to_remove_hw_breakpoint) (gdbarch, bp_tgt)
+ 
+-#define target_stopped_data_address(target, x) \
+-    (*target.to_stopped_data_address) (target, x)
++/* Return non-zero if target knows the data address which triggered this
++   target_stopped_by_watchpoint, in such case place it to *ADDR_P.  Only the
++   INFERIOR_PTID task is being queried.  */
++#define target_stopped_data_address(target, addr_p) \
++    (*target.to_stopped_data_address) (target, addr_p)
+ 
+ #define target_watchpoint_addr_within_range(target, addr, start, length) \
+   (*target.to_watchpoint_addr_within_range) (target, addr, start, length)
+@@ -1203,6 +1216,20 @@ extern int target_search_memory (CORE_ADDR start_addr,
                                   ULONGEST pattern_len,
                                   CORE_ADDR *found_addrp);
  
@@ -20118,7 +20192,7 @@ index b1cb852..adff946 100644
  /* Command logging facility.  */
  
  #define target_log_command(p)						\
-@@ -1322,6 +1346,14 @@ extern struct target_ops *find_target_beneath (struct target_ops *);
+@@ -1322,6 +1349,14 @@ extern struct target_ops *find_target_beneath (struct target_ops *);
  
  extern char *target_get_osdata (const char *type);
  
@@ -27292,10 +27366,10 @@ index 0000000..14f42d6
 +}
 diff --git a/gdb/testsuite/gdb.threads/watchthreads-reorder.exp b/gdb/testsuite/gdb.threads/watchthreads-reorder.exp
 new file mode 100644
-index 0000000..8f65364
+index 0000000..5ad1a4e
 --- /dev/null
 +++ b/gdb/testsuite/gdb.threads/watchthreads-reorder.exp
-@@ -0,0 +1,101 @@
+@@ -0,0 +1,105 @@
 +# This testcase is part of GDB, the GNU debugger.
 +
 +# Copyright 2009 Free Software Foundation, Inc.
@@ -27393,6 +27467,10 @@ index 0000000..8f65364
 +	     "Hardware read watchpoint \[0-9\]+: thread\[12\]_rwatch\r\n\r\nValue = 0\r\n0x\[0-9a-f\]+ in thread\[12\]_func .*" \
 +	     "continue b"
 +
++    # While the debug output itself is not checked in this testcase one bug was
++    # found in the DEBUG_INFRUN code path.
++    gdb_test "set debug infrun 1"
++
 +    gdb_continue_to_breakpoint "break-at-exit" ".*break-at-exit.*"
 +
 +    set pf_prefix $prefix_test
@@ -27803,7 +27881,7 @@ index a9c875d..12f6f07 100644
  }
  
 diff --git a/gdb/valops.c b/gdb/valops.c
-index b64cb21..b7d31cc 100644
+index 012ea6a..9b4d2a8 100644
 --- a/gdb/valops.c
 +++ b/gdb/valops.c
 @@ -38,6 +38,7 @@
@@ -27917,7 +27995,7 @@ index b64cb21..b7d31cc 100644
  	}
      }
    else if (VALUE_LVAL (val) == lval_register)
-@@ -1070,7 +1133,18 @@ address_of_variable (struct symbol *var, struct block *b)
+@@ -1072,7 +1135,18 @@ address_of_variable (struct symbol *var, struct block *b)
    if ((VALUE_LVAL (val) == lval_memory && value_lazy (val))
        || TYPE_CODE (type) == TYPE_CODE_FUNC)
      {
@@ -27937,7 +28015,7 @@ index b64cb21..b7d31cc 100644
        return value_from_pointer (lookup_pointer_type (type), addr);
      }
  
-@@ -1176,6 +1250,7 @@ struct value *
+@@ -1178,6 +1252,7 @@ struct value *
  value_coerce_array (struct value *arg1)
  {
    struct type *type = check_typedef (value_type (arg1));
@@ -27945,7 +28023,7 @@ index b64cb21..b7d31cc 100644
  
    /* If the user tries to do something requiring a pointer with an
       array that has not yet been pushed to the target, then this would
-@@ -1185,8 +1260,12 @@ value_coerce_array (struct value *arg1)
+@@ -1187,8 +1262,12 @@ value_coerce_array (struct value *arg1)
    if (VALUE_LVAL (arg1) != lval_memory)
      error (_("Attempt to take address of value not located in memory."));
  
@@ -27959,7 +28037,7 @@ index b64cb21..b7d31cc 100644
  }
  
  /* Given a value which is a function, return a value which is a pointer
-@@ -2069,12 +2148,25 @@ find_overload_match (struct type **arg_types, int nargs,
+@@ -2071,12 +2150,25 @@ find_overload_match (struct type **arg_types, int nargs,
    if (method)
      {
        gdb_assert (obj);
@@ -27990,7 +28068,7 @@ index b64cb21..b7d31cc 100644
  
        fns_ptr = value_find_oload_method_list (&temp, name, 
  					      0, &num_fns, 
-@@ -2094,16 +2186,29 @@ find_overload_match (struct type **arg_types, int nargs,
+@@ -2096,16 +2188,29 @@ find_overload_match (struct type **arg_types, int nargs,
      }
    else
      {
@@ -28028,7 +28106,7 @@ index b64cb21..b7d31cc 100644
        if (func_name == NULL)
          {
  	  *symp = fsym;
-@@ -2534,8 +2639,8 @@ check_field (struct type *type, const char *name)
+@@ -2536,8 +2641,8 @@ check_field (struct type *type, const char *name)
     the comment before value_struct_elt_for_reference.  */
  
  struct value *
@@ -28039,7 +28117,7 @@ index b64cb21..b7d31cc 100644
  		     enum noside noside)
  {
    switch (TYPE_CODE (curtype))
-@@ -2543,7 +2648,7 @@ value_aggregate_elt (struct type *curtype,
+@@ -2545,7 +2650,7 @@ value_aggregate_elt (struct type *curtype,
      case TYPE_CODE_STRUCT:
      case TYPE_CODE_UNION:
        return value_struct_elt_for_reference (curtype, 0, curtype, 
@@ -28048,7 +28126,7 @@ index b64cb21..b7d31cc 100644
  					     want_address, noside);
      case TYPE_CODE_NAMESPACE:
        return value_namespace_elt (curtype, name, 
-@@ -2554,6 +2659,56 @@ value_aggregate_elt (struct type *curtype,
+@@ -2556,6 +2661,56 @@ value_aggregate_elt (struct type *curtype,
      }
  }
  
@@ -28105,7 +28183,7 @@ index b64cb21..b7d31cc 100644
  /* C++: Given an aggregate type CURTYPE, and a member name NAME,
     return the address of this member as a "pointer to member" type.
     If INTYPE is non-null, then it will be the type of the member we
-@@ -2631,23 +2786,46 @@ value_struct_elt_for_reference (struct type *domain, int offset,
+@@ -2633,23 +2788,46 @@ value_struct_elt_for_reference (struct type *domain, int offset,
  	}
        if (t_field_name && strcmp (t_field_name, name) == 0)
  	{
@@ -28162,7 +28240,7 @@ index b64cb21..b7d31cc 100644
  
  	  if (TYPE_FN_FIELD_STATIC_P (f, j))
  	    {
-@@ -2761,7 +2939,7 @@ value_maybe_namespace_elt (const struct type *curtype,
+@@ -2763,7 +2941,7 @@ value_maybe_namespace_elt (const struct type *curtype,
    struct symbol *sym;
    struct value *result;
  
@@ -28171,7 +28249,7 @@ index b64cb21..b7d31cc 100644
  				    get_selected_block (0), 
  				    VAR_DOMAIN);
  
-@@ -2905,7 +3083,7 @@ value_of_local (const char *name, int complain)
+@@ -2907,7 +3085,7 @@ value_of_local (const char *name, int complain)
  
    /* Calling lookup_block_symbol is necessary to get the LOC_REGISTER
       symbol instead of the LOC_ARG one (if both exist).  */
@@ -28180,7 +28258,7 @@ index b64cb21..b7d31cc 100644
    if (sym == NULL)
      {
        if (complain)
-@@ -2959,8 +3137,6 @@ value_slice (struct value *array, int lowbound, int length)
+@@ -2961,8 +3139,6 @@ value_slice (struct value *array, int lowbound, int length)
        || lowbound + length - 1 > upperbound)
      error (_("slice out of range"));
  


Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/gdb.spec,v
retrieving revision 1.391
retrieving revision 1.392
diff -u -p -r1.391 -r1.392
--- gdb.spec	30 Sep 2009 21:03:20 -0000	1.391
+++ gdb.spec	7 Oct 2009 19:17:19 -0000	1.392
@@ -10,11 +10,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: 6.8.91.20090930
+Version: 7.0
 
 # 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: 2%{?_with_upstream:.upstream}%{?dist}
+Release: 1%{?_with_upstream:.upstream}%{?dist}
 
 License: GPLv3+
 Group: Development/Debuggers
@@ -367,6 +367,9 @@ Patch376: libstdc++-v3-python-common-pre
 # New test for step-resume breakpoint placed in multiple threads at once.
 Patch381: gdb-simultaneous-step-resume-breakpoint-test.patch
 
+# Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
+Patch382: gdb-core-open-vdso-warning.patch
+
 BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
 Requires: readline
 BuildRequires: readline-devel
@@ -560,6 +563,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc
 %patch375 -p1
 %patch376 -p1
 %patch381 -p1
+%patch382 -p1
 %patch124 -p1
 
 find -name "*.orig" | xargs rm -f
@@ -847,6 +851,11 @@ fi
 %endif
 
 %changelog
+* Wed Oct  7 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0-1
+- Formal upgrade to the final FSF GDB release gdb-7.0.
+- Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
+- archer-jankratochvil-fedora12 commit: ce4ead356654b951a49ca78d81ebfff95e758bf5
+
 * Wed Sep 30 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.91.20090930-2
 - Bump release.
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/sources,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -p -r1.41 -r1.42
--- sources	30 Sep 2009 21:02:26 -0000	1.41
+++ sources	7 Oct 2009 19:17:19 -0000	1.42
@@ -1,2 +1,2 @@
 1e3a26040dcdd3579d75967085eb92b9  libstdc++-v3-python-r151798.tar.xz
-729517cc8e6ca6e25cf4be343ffc4c3d  gdb-6.8.91.20090930.tar.bz2
+3386a7b69c010785c920ffc1e9cb890a  gdb-7.0.tar.bz2




More information about the scm-commits mailing list