[gdb] - Rebase to FSF GDB 7.2.50.20110125 (which is a 7.3 pre-release). - Fix discontiguous address ranges

Jan Kratochvil jankratochvil at fedoraproject.org
Tue Jan 25 21:51:42 UTC 2011


commit 8973456f5a2639c917c783461279dc9cb1423b3b
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date:   Tue Jan 25 22:51:27 2011 +0100

    - Rebase to FSF GDB 7.2.50.20110125 (which is a 7.3 pre-release).
    - Fix discontiguous address ranges in .gdb_index - v3->v4 (BZ 672281).
    - Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6.

 .gitignore                 |    2 +-
 gdb-archer.patch           |  203 ++++++++++++++++++--------------------------
 gdb-gdbindex-v4-2of3.patch |   52 +++++++++++
 gdb.spec                   |   18 ++++-
 sources                    |    2 +-
 5 files changed, 152 insertions(+), 125 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 66c692b..d5cdede 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
 /libstdc++-v3-python-r155978.tar.bz2
-/gdb-7.2.50.20110117.tar.bz2
+/gdb-7.2.50.20110125.tar.bz2
diff --git a/gdb-archer.patch b/gdb-archer.patch
index ca6deb7..1d85030 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 ce88fe365322b0f7479c43eede6d3a0d337eb786
+commit b3fa51e30637989ca4a8ee4763ba921322a1bd0d
 
 branch `archer' - the merge of branches:
 archer-jankratochvil-vla
@@ -14,7 +14,7 @@ archer-tromey-python
 
 
 diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index 226faf6..03aaa2c 100644
+index 36cc734..977fe0c 100644
 --- a/gdb/Makefile.in
 +++ b/gdb/Makefile.in
 @@ -783,7 +783,8 @@ annotate.h sim-regno.h dictionary.h dfp.h main.h frame-unwind.h	\
@@ -1123,7 +1123,7 @@ index 9409dde..f0fa4c7 100644
  extern char *xfullpath (const char *);
  
 diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
-index d48d95c..4cac1ba 100644
+index cc2391b..161ac1f 100644
 --- a/gdb/doc/gdb.texinfo
 +++ b/gdb/doc/gdb.texinfo
 @@ -1177,6 +1177,16 @@ for remote debugging.
@@ -1143,7 +1143,7 @@ index d48d95c..4cac1ba 100644
  @c resolve the situation of these eventually
  @item -tui
  @cindex @code{--tui}
-@@ -20630,8 +20640,6 @@ containing @code{end}.  For example:
+@@ -20652,8 +20662,6 @@ containing @code{end}.  For example:
  
  @smallexample
  (@value{GDBP}) python
@@ -1152,7 +1152,7 @@ index d48d95c..4cac1ba 100644
  >print 23
  >end
  23
-@@ -20644,6 +20652,14 @@ in a Python script.  This can be controlled using @code{maint set
+@@ -20666,6 +20674,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.
@@ -1167,7 +1167,7 @@ index d48d95c..4cac1ba 100644
  @end table
  
  It is also possible to execute a Python script from the @value{GDBN}
-@@ -20665,6 +20681,14 @@ and thus is always available.
+@@ -20687,6 +20703,14 @@ and thus is always available.
  @cindex python api
  @cindex programming in python
  
@@ -3254,7 +3254,7 @@ index ad988d2..985fef6 100644
      {
      case TYPE_CODE_ARRAY:
 diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
-index 4d26ade..206a62b 100644
+index 94a70a1..7bb04e7 100644
 --- a/gdb/f-valprint.c
 +++ b/gdb/f-valprint.c
 @@ -54,15 +54,17 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2];
@@ -3337,7 +3337,7 @@ index 4d26ade..206a62b 100644
      }
  }
  
-@@ -173,36 +183,34 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
+@@ -174,37 +184,35 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
  
    if (nss != ndimensions)
      {
@@ -3348,10 +3348,10 @@ index 4d26ade..206a62b 100644
  	{
  	  fprintf_filtered (stream, "( ");
  	  f77_print_array_1 (nss + 1, ndimensions, TYPE_TARGET_TYPE (type),
--			     valaddr + i * F77_DIM_OFFSET (nss),
--			     address + i * F77_DIM_OFFSET (nss),
-+			     valaddr + i * F77_DIM_BYTE_STRIDE (nss),
-+			     address + i * F77_DIM_BYTE_STRIDE (nss),
+ 			     valaddr,
+-			     embedded_offset + i * F77_DIM_OFFSET (nss),
++			     embedded_offset + i * F77_DIM_BYTE_STRIDE (nss),
+ 			     address,
  			     stream, recurse, val, options, elts);
  	  fprintf_filtered (stream, ") ");
  	}
@@ -3366,12 +3366,11 @@ index 4d26ade..206a62b 100644
  	   i++, (*elts)++)
  	{
  	  val_print (TYPE_TARGET_TYPE (type),
--		     valaddr + i * F77_DIM_OFFSET (ndimensions),
-+		     valaddr + i * F77_DIM_BYTE_STRIDE (ndimensions),
- 		     0,
--		     address + i * F77_DIM_OFFSET (ndimensions),
-+		     address + i * F77_DIM_BYTE_STRIDE (ndimensions),
- 		     stream, recurse, val, options, current_language);
+ 		     valaddr,
+-		     embedded_offset + i * F77_DIM_OFFSET (ndimensions),
++		     embedded_offset + i * F77_DIM_BYTE_STRIDE (ndimensions),
+ 		     address, stream, recurse,
+ 		     val, options, current_language);
  
 -	  if (i != (F77_DIM_SIZE (nss) - 1))
 +	  if (i != (F77_DIM_COUNT (nss) - 1))
@@ -3383,7 +3382,7 @@ index 4d26ade..206a62b 100644
  	    fprintf_filtered (stream, "...");
  	}
      }
-@@ -260,6 +268,9 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
+@@ -263,6 +271,9 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
    CORE_ADDR addr;
    int index;
  
@@ -5486,7 +5485,7 @@ index 75de56c..2a64a0e 100644
        /* Handle the case of functions lacking debugging info.
           Their values are characters since their addresses are char.  */
 diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
-index 62a4538..8d14fcd 100644
+index a855219..1668f95 100644
 --- a/gdb/linux-nat.c
 +++ b/gdb/linux-nat.c
 @@ -1254,6 +1254,64 @@ iterate_over_lwps (ptid_t filter,
@@ -5785,7 +5784,7 @@ index 8497991..4635853 100644
  		       SYMBOL_LINKAGE_NAME (tsymbol)) == 0)
  	  return SYMBOL_VALUE_ADDRESS (msymbol);
 diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
-index e993c05..affbe45 100644
+index 34decb9..0399e0a 100644
 --- a/gdb/p-valprint.c
 +++ b/gdb/p-valprint.c
 @@ -38,6 +38,7 @@
@@ -5796,7 +5795,7 @@ index e993c05..affbe45 100644
  
  
  
-@@ -68,8 +69,27 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
+@@ -68,8 +69,31 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
    struct type *char_type;
    LONGEST val;
    CORE_ADDR addr;
@@ -5805,6 +5804,7 @@ index e993c05..affbe45 100644
 +  CORE_ADDR saved_address = address;
 +  
 +  back_to = make_cleanup (null_cleanup, 0);
++  address += embedded_offset;
 +  type = object_address_get_data (type, &address);
 +  if (type == NULL)
 +    {
@@ -5813,7 +5813,7 @@ index e993c05..affbe45 100644
 +      do_cleanups (back_to);
 +      return 0;
 +    }
-+  if (address != saved_address)
++  if (address != saved_address + embedded_offset)
 +    {
 +      size_t length = TYPE_LENGTH (type);
  
@@ -5821,22 +5821,25 @@ index e993c05..affbe45 100644
 +      valaddr = xmalloc (length);
 +      make_cleanup (xfree, (gdb_byte *) valaddr);
 +      read_memory (address, (gdb_byte *) valaddr, length);
++      embedded_offset = 0;
 +    }
++  else
++    address -= embedded_offset;
    switch (TYPE_CODE (type))
      {
      case TYPE_CODE_ARRAY:
-@@ -125,8 +145,8 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
+@@ -125,8 +149,8 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
  		{
  		  i = 0;
  		}
--	      val_print_array_elements (type, valaddr + embedded_offset,
+-	      val_print_array_elements (type, valaddr, embedded_offset,
 -					address, stream, recurse,
-+	      val_print_array_elements (saved_type, valaddr + embedded_offset,
++	      val_print_array_elements (saved_type, valaddr, embedded_offset,
 +					saved_address, stream, recurse,
  					original_value, options, i);
  	      fprintf_filtered (stream, "}");
  	    }
-@@ -165,6 +185,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
+@@ -165,6 +189,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
  	  /* Try to print what function it points to.  */
  	  print_address_demangle (gdbarch, addr, stream, demangle);
  	  /* Return value is irrelevant except for string pointers.  */
@@ -5844,7 +5847,7 @@ index e993c05..affbe45 100644
  	  return (0);
  	}
  
-@@ -256,6 +277,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
+@@ -256,6 +281,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
        /* Return number of characters printed, including the terminating
  	 '\0' if we reached the end.  val_print_string takes care including
  	 the terminating '\0' if necessary.  */
@@ -5852,7 +5855,7 @@ index e993c05..affbe45 100644
        return i;
  
        break;
-@@ -572,6 +594,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
+@@ -572,6 +598,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr,
  	     TYPE_CODE (type));
      }
    gdb_flush (stream);
@@ -6504,7 +6507,7 @@ index 0000000..96b6618
 +AliasCommand()
 diff --git a/gdb/python/lib/gdb/command/backtrace.py b/gdb/python/lib/gdb/command/backtrace.py
 new file mode 100644
-index 0000000..2aa5b90
+index 0000000..eeea909
 --- /dev/null
 +++ b/gdb/python/lib/gdb/command/backtrace.py
 @@ -0,0 +1,106 @@
@@ -6590,7 +6593,7 @@ index 0000000..2aa5b90
 +
 +        # FIXME: provide option to start at selected frame
 +        # However, should still number as if starting from newest
-+        newest_frame = gdb.selected_thread ().newest_frame ()
++        newest_frame = gdb.newest_frame()
 +        iter = itertools.imap (FrameWrapper,
 +                               FrameIterator (newest_frame))
 +        if filter:
@@ -9360,10 +9363,10 @@ index 0000000..45bc650
 +gdb_test_no_output {delete $bpnum}
 diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S b/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
 new file mode 100644
-index 0000000..7fb00ea
+index 0000000..aac3baa
 --- /dev/null
 +++ b/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.S
-@@ -0,0 +1,212 @@
+@@ -0,0 +1,246 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
 +   Copyright 2010 Free Software Foundation, Inc.
@@ -9428,6 +9431,19 @@ index 0000000..7fb00ea
 +	.4byte		.Llenb_var-.Lcu1_begin	/* DW_AT_upper_bound */
 +	.byte		0			/* End of children of die */
 +
++	/* DW_AT_upper_bound is referencing register.  */
++.Larrayreg_type:
++	.uleb128	2			/* Abbrev: DW_TAG_array_type */
++	.4byte		.Lchar_type-.Lcu1_begin	/* DW_AT_type */
++
++	.uleb128	8			/* Abbrev: DW_TAG_subrange_type with block */
++	.4byte		.Luint_type-.Lcu1_begin	/* DW_AT_type */
++	.byte		0			/* DW_AT_lower_bound */
++	.byte		2f - 1f			/* DW_AT_upper_bound */
++1:	.byte		0x50			/* DW_OP_reg0 */
++2:
++	.byte		0			/* End of children of die */
++
 +.Luint_type:
 +	.uleb128	4			/* Abbrev: DW_TAG_base_type */
 +	.4byte		.Luint_str		/* DW_AT_name */
@@ -9469,6 +9485,15 @@ index 0000000..7fb00ea
 +	.4byte		vardata			/*   <addr> */
 +2:
 +
++	/* DW_AT_upper_bound is referencing register.  */
++	.uleb128	6			/* Abbrev: DW_TAG_variable DW_FORM_string */
++	.string		"reg_string"		/* DW_AT_name */
++	.4byte		.Larrayreg_type-.Lcu1_begin /* DW_AT_type */
++	.byte		2f - 1f			/* DW_AT_location */
++1:	.byte		3			/*   DW_OP_addr */
++	.4byte		vardata			/*   <addr> */
++2:
++
 +	.byte		0			/* End of children of CU */
 +.Lcu1_end:
 +
@@ -9566,6 +9591,18 @@ index 0000000..7fb00ea
 +	.byte		0x0			/* Terminator */
 +	.byte		0x0			/* Terminator */
 +
++	.uleb128	8			/* Abbrev code */
++	.uleb128	0x21			/* DW_TAG_subrange_type with block */
++	.byte		0x0			/* no children */
++	.uleb128	0x49			/* DW_AT_type */
++	.uleb128	0x13			/* DW_FORM_ref4 */
++	.uleb128	0x22			/* DW_AT_lower_bound */
++	.uleb128	0xb			/* DW_FORM_data1 */
++	.uleb128	0x2f			/* DW_AT_upper_bound */
++	.uleb128	0xa			/* DW_FORM_block1 */
++	.byte		0x0			/* Terminator */
++	.byte		0x0			/* Terminator */
++
 +	.byte		0x0			/* Terminator */
 +
 +/* String table */
@@ -9578,10 +9615,10 @@ index 0000000..7fb00ea
 +	.string		"unsigned int"
 diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp b/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
 new file mode 100644
-index 0000000..5dbed3f
+index 0000000..815ed93
 --- /dev/null
 +++ b/gdb/testsuite/gdb.dwarf2/dw2-bound-loclist.exp
-@@ -0,0 +1,51 @@
+@@ -0,0 +1,54 @@
 +# Copyright 2010 Free Software Foundation, Inc.
 +
 +# This program is free software; you can redistribute it and/or modify
@@ -9633,6 +9670,9 @@ index 0000000..5dbed3f
 +
 +gdb_test "p b_string" { = (0x[0-9a-f]+ )?"seennotseen"}
 +gdb_test "ptype b_string" {type = char \[\]}
++
++# The register contains unpredictable value - the array size.
++gdb_test "ptype reg_string" {type = char \[-?[0-9]+\]}
 diff --git a/gdb/testsuite/gdb.dwarf2/dw2-stripped.c b/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
 new file mode 100644
 index 0000000..1f02d90
@@ -10856,85 +10896,6 @@ index 0000000..f2de718
 +# Seen regression:
 +# Address requested for identifier "arr" which is in register $rdi
 +gdb_test "p arr\[0\]" "\\$\[0-9\]+ = 42"
-diff --git a/gdb/testsuite/gdb.opt/fortran-string.exp b/gdb/testsuite/gdb.opt/fortran-string.exp
-new file mode 100644
-index 0000000..c108ea5
---- /dev/null
-+++ b/gdb/testsuite/gdb.opt/fortran-string.exp
-@@ -0,0 +1,39 @@
-+# Copyright 2009 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+# 
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+# 
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-+
-+# This file was written by Jan Kratochvil <jan.kratochvil at redhat.com>.
-+
-+# Test GDB can cope with Fortran strings having their length present in a CPU
-+# register.  With -O0 the string length is passed on the stack.  To make this
-+# test meaningful the follow assertion should pass.  It is not being checked
-+# here as the "_s" symbol is compiler dependent:
-+#   (gdb) info address _s
-+#   Symbol "_s" is a variable in register XX.
-+
-+set test fortran-string
-+set srcfile ${test}.f90
-+if { [prepare_for_testing ${test}.exp ${test} ${srcfile} {debug f77 additional_flags=-O2}] } {
-+    return -1
-+}
-+
-+if ![runto $srcfile:[gdb_get_line_number "s = s"]] then {
-+    perror "couldn't run to breakpoint MAIN__"
-+    continue
-+}
-+
-+gdb_test "frame" ".*s='foo'.*"
-+gdb_test "ptype s" "type = character\\*3"
-+gdb_test "p s" "\\$\[0-9\]* = 'foo'"
-diff --git a/gdb/testsuite/gdb.opt/fortran-string.f90 b/gdb/testsuite/gdb.opt/fortran-string.f90
-new file mode 100644
-index 0000000..e48d520
---- /dev/null
-+++ b/gdb/testsuite/gdb.opt/fortran-string.f90
-@@ -0,0 +1,28 @@
-+! Copyright 2009 Free Software Foundation, Inc.
-+!
-+! This program is free software; you can redistribute it and/or modify
-+! it under the terms of the GNU General Public License as published by
-+! the Free Software Foundation; either version 2 of the License, or
-+! (at your option) any later version.
-+!
-+! This program is distributed in the hope that it will be useful,
-+! but WITHOUT ANY WARRANTY; without even the implied warranty of
-+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+! GNU General Public License for more details.
-+!
-+! You should have received a copy of the GNU General Public License
-+! along with this program; if not, write to the Free Software
-+! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+!
-+! Ihis file is the Fortran source file for dynamic.exp.
-+! Original file written by Jakub Jelinek <jakub at redhat.com>.
-+! Modified for the GDB testcase by Jan Kratochvil <jan.kratochvil at redhat.com>.
-+
-+  subroutine f(s)
-+  character*(*) s
-+  s = s
-+  end
-+
-+  program main
-+  call f ('foo')
-+  end
 diff --git a/gdb/testsuite/gdb.pascal/arrays.exp b/gdb/testsuite/gdb.pascal/arrays.exp
 new file mode 100644
 index 0000000..ccc6e1e
@@ -11885,7 +11846,7 @@ index 891da37..236c5ca 100644
      set pascal_init_done 1
  }   
 diff --git a/gdb/top.c b/gdb/top.c
-index bba1a2d..5582f30 100644
+index d14f308..7605f85 100644
 --- a/gdb/top.c
 +++ b/gdb/top.c
 @@ -343,6 +343,7 @@ void
@@ -11954,10 +11915,10 @@ index 03e6332..ce6d1e0 100644
  
  static void
 diff --git a/gdb/utils.c b/gdb/utils.c
-index c23c4d4..60d55b7 100644
+index 82e3adb..a5b9146 100644
 --- a/gdb/utils.c
 +++ b/gdb/utils.c
-@@ -2206,6 +2206,36 @@ set_batch_flag_and_make_cleanup_restore_page_info (void)
+@@ -2238,6 +2238,36 @@ set_batch_flag_and_make_cleanup_restore_page_info (void)
    return back_to;
  }
  
@@ -12180,7 +12141,7 @@ index 19d5238..c9d721a 100644
      {
        int i;
 diff --git a/gdb/valprint.c b/gdb/valprint.c
-index f65fe27..dd1aaee 100644
+index c98e315..de9de10 100644
 --- a/gdb/valprint.c
 +++ b/gdb/valprint.c
 @@ -36,6 +36,7 @@
@@ -12199,7 +12160,7 @@ index f65fe27..dd1aaee 100644
      case TYPE_CODE_BITSTRING:
        return 0;
      default:
-@@ -1117,6 +1117,7 @@ val_print_array_elements (struct type *type, const gdb_byte *valaddr,
+@@ -1118,6 +1118,7 @@ val_print_array_elements (struct type *type,
  {
    unsigned int things_printed = 0;
    unsigned len;
@@ -12207,7 +12168,7 @@ index f65fe27..dd1aaee 100644
    struct type *elttype, *index_type;
    unsigned eltlen;
    /* Position of the array element we are examining to see
-@@ -1125,9 +1126,33 @@ val_print_array_elements (struct type *type, const gdb_byte *valaddr,
+@@ -1126,9 +1127,33 @@ val_print_array_elements (struct type *type,
    /* Number of repetitions we have detected so far.  */
    unsigned int reps;
    LONGEST low_bound, high_bound;
@@ -12243,7 +12204,7 @@ index f65fe27..dd1aaee 100644
    index_type = TYPE_INDEX_TYPE (type);
  
    if (get_array_bounds (type, &low_bound, &high_bound))
-@@ -1202,6 +1227,8 @@ val_print_array_elements (struct type *type, const gdb_byte *valaddr,
+@@ -1207,6 +1232,8 @@ val_print_array_elements (struct type *type,
      {
        fprintf_filtered (stream, "...");
      }
diff --git a/gdb-gdbindex-v4-2of3.patch b/gdb-gdbindex-v4-2of3.patch
new file mode 100644
index 0000000..138f60d
--- /dev/null
+++ b/gdb-gdbindex-v4-2of3.patch
@@ -0,0 +1,52 @@
+http://sourceware.org/ml/gdb-cvs/2011-01/msg00169.html
+
+### src/gdb/ChangeLog	2011/01/25 17:00:23	1.12503
+### src/gdb/ChangeLog	2011/01/25 17:25:10	1.12504
+## -1,3 +1,8 @@
++2011-01-25  Jan Kratochvil  <jan.kratochvil at redhat.com>
++
++	* dwarf2read.c (dwarf2_read_index, write_psymtabs_to_index)
++	(save_gdb_index_command): Switch to .gdb_index version 4.
++
+ 2011-01-25  Pedro Alves  <pedro at codesourcery.com>
+ 
+ 	* mi/mi-main.c (get_register): Use get_frame_register_value rather
+--- src/gdb/dwarf2read.c	2011/01/12 16:16:20	1.495
++++ src/gdb/dwarf2read.c	2011/01/25 17:25:12	1.496
+@@ -2024,13 +2024,14 @@
+   /* Version check.  */
+   version = MAYBE_SWAP (*(offset_type *) addr);
+   /* Versions earlier than 3 emitted every copy of a psymbol.  This
+-     causes the index to behave very poorly for certain requests.  So,
+-     it seems better to just ignore such indices.  */
+-  if (version < 3)
++     causes the index to behave very poorly for certain requests.  Version 4
++     contained incomplete addrmap.  So, it seems better to just ignore such
++     indices.  */
++  if (version < 4)
+     return 0;
+   /* Indexes with higher version than the one supported by GDB may be no
+      longer backward compatible.  */
+-  if (version > 3)
++  if (version > 4)
+     return 0;
+ 
+   map = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct mapped_index);
+@@ -15688,7 +15689,7 @@
+   total_len = size_of_contents;
+ 
+   /* The version number.  */
+-  val = MAYBE_SWAP (3);
++  val = MAYBE_SWAP (4);
+   obstack_grow (&contents, &val, sizeof (val));
+ 
+   /* The offset of the CU list from the start of the file.  */
+@@ -15746,7 +15747,7 @@
+    1. The file header.  This is a sequence of values, of offset_type
+    unless otherwise noted:
+ 
+-   [0] The version number, currently 3.  Versions 1 and 2 are
++   [0] The version number, currently 4.  Versions 1, 2 and 3 are
+    obsolete.
+    [1] The offset, from the start of the file, of the CU list.
+    [2] The offset, from the start of the file, of the types CU list.
diff --git a/gdb.spec b/gdb.spec
index 243cad4..e95baa4 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -23,11 +23,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.2.50.20110117
+Version: 7.2.50.20110125
 
 # 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: 13%{?_with_upstream:.upstream}%{?dist}
+Release: 14%{?_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
@@ -536,6 +536,13 @@ Patch547: gdb-test-dw2-aranges.patch
 # =fedoratest
 Patch548: gdb-test-expr-cumulative-archer.patch
 
+# Fix discontiguous address ranges in .gdb_index - v3->v4 (BZ 672281).
+# =push
+Patch552: gdb-gdbindex-v4-2of3.patch
+
+# Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6.
+Patch554: gdb-dwarf3-accessibility.patch
+
 BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa}
 Requires: readline%{?_isa}
 BuildRequires: readline-devel%{?_isa}
@@ -785,6 +792,8 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
 %patch542 -p1
 %patch547 -p1
 %patch548 -p1
+%patch552 -p1
+%patch554 -p1
 
 %patch390 -p1
 %patch393 -p1
@@ -1191,6 +1200,11 @@ fi
 %endif
 
 %changelog
+* Thu Jan 20 2011 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.2.50.20110125-14.fc15
+- Rebase to FSF GDB 7.2.50.20110125 (which is a 7.3 pre-release).
+- Fix discontiguous address ranges in .gdb_index - v3->v4 (BZ 672281).
+- Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6.
+
 * Thu Jan 20 2011 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.2.50.20110117-13.fc15
 - Use librpm.so.2 for rpm-4.9.0 in Fedora 15.
 
diff --git a/sources b/sources
index 766cdf8..f9fd235 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 04e5c4b1b9e633422cc48990fe61958d  libstdc++-v3-python-r155978.tar.bz2
-3cecba20b0efd51e5acb937f3abd2014  gdb-7.2.50.20110117.tar.bz2
+525bcebaa799261486cb76ba9638636b  gdb-7.2.50.20110125.tar.bz2


More information about the scm-commits mailing list