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

This commit is contained in:
Jan Kratochvil 2010-09-25 19:06:27 +02:00
parent a0db7fa0a1
commit 20ca7f0fe4
2 changed files with 104 additions and 1 deletions

View File

@ -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@redhat.com>
+
+ * dwarf2read.c (dw2_expand_symtabs_matching): Add missing
+ MAYBE_SWAPs.
+ (dw2_map_symbol_names): Likewise.
+
2010-09-24 Sami Wagiaalla <swagiaal@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);
}

View File

@ -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@redhat.com> - 7.2-13.fc14
- Fix .gdb_index for big-endian hosts (Tom Tromey).
* Sat Sep 25 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2-12.fc14
- Fix lost siginfo_t in linux-nat (BZ 592031).