[gdb/f14/master] - Fix .gdb_index for big-endian hosts (Tom Tromey).

Jan Kratochvil jkratoch at fedoraproject.org
Sat Sep 25 17:06:32 UTC 2010


commit 20ca7f0fe4a909d31c0c52d700e27a486a752110
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date:   Sat Sep 25 19:06:27 2010 +0200

    - Fix .gdb_index for big-endian hosts (Tom Tromey).

 gdb-gdbindex-bigendian.patch |   96 ++++++++++++++++++++++++++++++++++++++++++
 gdb.spec                     |    9 ++++-
 2 files changed, 104 insertions(+), 1 deletions(-)
---
diff --git a/gdb-gdbindex-bigendian.patch b/gdb-gdbindex-bigendian.patch
new file mode 100644
index 0000000..b03632f
--- /dev/null
+++ b/gdb-gdbindex-bigendian.patch
@@ -0,0 +1,96 @@
+http://sourceware.org/ml/gdb-patches/2010-09/msg00434.html
+http://sourceware.org/ml/gdb-cvs/2010-09/msg00155.html
+
+### src/gdb/ChangeLog	2010/09/24 14:47:52	1.12202
+### src/gdb/ChangeLog	2010/09/24 16:11:44	1.12203
+## -1,3 +1,9 @@
++2010-09-24  Tom Tromey  <tromey at redhat.com>
++
++	* dwarf2read.c (dw2_expand_symtabs_matching): Add missing
++	MAYBE_SWAPs.
++	(dw2_map_symbol_names): Likewise.
++
+ 2010-09-24  Sami Wagiaalla  <swagiaal at redhat.com>
+ 
+ 	* valops.c (find_oload_champ_namespace_loop): replace incorrect
+--- src/gdb/dwarf2read.c	2010/09/22 19:22:44	1.460
++++ src/gdb/dwarf2read.c	2010/09/24 16:11:46	1.461
+@@ -2248,10 +2248,12 @@ dw2_expand_symtabs_matching (struct objf
+ {
+   int i;
+   offset_type iter;
++  struct mapped_index *index;
+ 
+   dw2_setup (objfile);
+   if (!dwarf2_per_objfile->index_table)
+     return;
++  index = dwarf2_per_objfile->index_table;
+ 
+   for (i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+     {
+@@ -2411,28 +2413,24 @@
+ 	}
+     }
+ 
+-  for (iter = 0;
+-       iter < dwarf2_per_objfile->index_table->index_table_slots;
+-       ++iter)
++  for (iter = 0; iter < index->index_table_slots; ++iter)
+     {
+       offset_type idx = 2 * iter;
+       const char *name;
+       offset_type *vec, vec_len, vec_idx;
+ 
+-      if (dwarf2_per_objfile->index_table->index_table[idx] == 0
+-	  && dwarf2_per_objfile->index_table->index_table[idx + 1] == 0)
++      if (index->index_table[idx] == 0 && index->index_table[idx + 1] == 0)
+ 	continue;
+ 
+-      name = (dwarf2_per_objfile->index_table->constant_pool
+-	      + dwarf2_per_objfile->index_table->index_table[idx]);
++      name = index->constant_pool + MAYBE_SWAP (index->index_table[idx]);
+ 
+       if (! (*name_matcher) (name, data))
+ 	continue;
+ 
+       /* The name was matched, now expand corresponding CUs that were
+ 	 marked.  */
+-      vec = (offset_type *) (dwarf2_per_objfile->index_table->constant_pool
+-			     + dwarf2_per_objfile->index_table->index_table[idx + 1]);
++      vec = (offset_type *) (index->constant_pool
++			     + MAYBE_SWAP (index->index_table[idx + 1]));
+       vec_len = MAYBE_SWAP (vec[0]);
+       for (vec_idx = 0; vec_idx < vec_len; ++vec_idx)
+ 	{
+@@ -2476,25 +2474,24 @@
+ 		      void *data)
+ {
+   offset_type iter;
++  struct mapped_index *index;
++
+   dw2_setup (objfile);
+ 
+   if (!dwarf2_per_objfile->index_table)
+     return;
++  index = dwarf2_per_objfile->index_table;
+ 
+-  for (iter = 0;
+-       iter < dwarf2_per_objfile->index_table->index_table_slots;
+-       ++iter)
++  for (iter = 0; iter < index->index_table_slots; ++iter)
+     {
+       offset_type idx = 2 * iter;
+       const char *name;
+       offset_type *vec, vec_len, vec_idx;
+ 
+-      if (dwarf2_per_objfile->index_table->index_table[idx] == 0
+-	  && dwarf2_per_objfile->index_table->index_table[idx + 1] == 0)
++      if (index->index_table[idx] == 0 && index->index_table[idx + 1] == 0)
+ 	continue;
+ 
+-      name = (dwarf2_per_objfile->index_table->constant_pool
+-	      + dwarf2_per_objfile->index_table->index_table[idx]);
++      name = (index->constant_pool + MAYBE_SWAP (index->index_table[idx]));
+ 
+       (*fun) (name, data);
+     }
diff --git a/gdb.spec b/gdb.spec
index 59ad980..f639764 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -27,7 +27,7 @@ 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: 13%{?_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
@@ -448,6 +448,9 @@ Patch509: gdb-bz592031-siginfo-lost-3of5.patch
 Patch510: gdb-bz592031-siginfo-lost-4of5.patch
 Patch511: gdb-bz592031-siginfo-lost-5of5.patch
 
+# Fix .gdb_index for big-endian hosts (Tom Tromey).
+Patch512: gdb-gdbindex-bigendian.patch
+
 BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa}
 Requires: readline%{?_isa}
 BuildRequires: readline-devel%{?_isa}
@@ -716,6 +719,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
 %patch509 -p1
 %patch510 -p1
 %patch511 -p1
+%patch512 -p1
 
 %patch393 -p1
 %patch335 -p1
@@ -1100,6 +1104,9 @@ fi
 %endif
 
 %changelog
+* Sat Sep 25 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.2-13.fc14
+- Fix .gdb_index for big-endian hosts (Tom Tromey).
+
 * Sat Sep 25 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.2-12.fc14
 - Fix lost siginfo_t in linux-nat (BZ 592031).
 


More information about the scm-commits mailing list