[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