aboutsummaryrefslogtreecommitdiff
path: root/gdb/elfread.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2008-05-02 20:38:16 +0000
committerDaniel Jacobowitz <drow@false.org>2008-05-02 20:38:16 +0000
commit60c5725ca96c0d9c347f04d37f0e1f6d0f263f41 (patch)
tree387933a649a79c50e3a372850696b04dbe644995 /gdb/elfread.c
parent574dffa2b953e04f57a359f0e19b2ba42fbcf2a6 (diff)
downloadgdb-60c5725ca96c0d9c347f04d37f0e1f6d0f263f41.zip
gdb-60c5725ca96c0d9c347f04d37f0e1f6d0f263f41.tar.gz
gdb-60c5725ca96c0d9c347f04d37f0e1f6d0f263f41.tar.bz2
* Makefile.in (arm-tdep.o): Update.
* arm-tdep.c (arm_objfile_data_key, struct arm_mapping_symbol) (struct arm_per_objfile, arm_compare_mapping_symbols): New. (arm_pc_is_thumb): Use mapping symbols. (arm_objfile_data_cleanup, arm_record_special_symbol): New. (arm_gdbarch_init): Call set_gdbarch_record_special_symbol. (_initialize_arm_tdep): Initialize arm_objfile_data_key. * elfread.c (elf_symtab_read): Use gdbarch_record_special_symbol. * gdbarch.sh: Add record_special_symbol. * gdbarch.c, gdbarch.h: Regenerated. * objfiles.c (struct objfile_data): Add cleanup member. (register_objfile_data_with_cleanup): New function, from register_objfile_data. (register_objfile_data): Use it. (objfile_free_data): Call clear_objfile_data. (clear_objfile_data): Call cleanup functions. * objfiles.h (register_objfile_data_with_cleanup): Declare.
Diffstat (limited to 'gdb/elfread.c')
-rw-r--r--gdb/elfread.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 88ea77b..76af9dc 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -240,7 +240,11 @@ elf_symtab_read (struct objfile *objfile, int type,
symbols which do not correspond to objects in the symbol table,
but have some other target-specific meaning. */
if (bfd_is_target_special_symbol (objfile->obfd, sym))
- continue;
+ {
+ if (gdbarch_record_special_symbol_p (gdbarch))
+ gdbarch_record_special_symbol (gdbarch, objfile, sym);
+ continue;
+ }
offset = ANOFFSET (objfile->section_offsets, sym->section->index);
if (type == ST_DYNAMIC