diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2005-07-08 00:26:53 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2005-07-08 00:26:53 +0000 |
commit | 29ef70053f959e79ee068480e53ff9c490b891b3 (patch) | |
tree | 305742f500264efc76910b8740685998750653bb /bfd/elf.c | |
parent | e7de25feb26c5598bf1082923fb33806dc93d002 (diff) | |
download | gdb-29ef70053f959e79ee068480e53ff9c490b891b3.zip gdb-29ef70053f959e79ee068480e53ff9c490b891b3.tar.gz gdb-29ef70053f959e79ee068480e53ff9c490b891b3.tar.bz2 |
2005-07-07 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (elf_backend_data): Add special_sections.
* elf.c (_bfd_elf_get_sec_type_attr): Check special_sections
first.
* elf32-arm.c (elf_backend_get_sec_type_attr): Removed.
(elf_backend_special_sections): New. Defined.
* elf32-m32r.c: Likewise.
* elf32-m68hc11.c: Likewise.
* elf32-m68hc12.c: Likewise.
* elf32-mcore.c: Likewise.
* elf32-sh64.c: Likewise.
* elf32-v850.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-sh64.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* elfxx-mips.h: Likewise.
* elfxx-target.h (elf_backend_special_sections): New.
(elfNN_bed): Initialize special_sections.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r-- | bfd/elf.c | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -2339,15 +2339,27 @@ _bfd_elf_get_special_section (const char *name, } const struct bfd_elf_special_section * -_bfd_elf_get_sec_type_attr (bfd *abfd ATTRIBUTE_UNUSED, asection *sec) +_bfd_elf_get_sec_type_attr (bfd *abfd, asection *sec) { int i; const struct bfd_elf_special_section *spec; + const struct elf_backend_data *bed; /* See if this is one of the special sections. */ if (sec->name == NULL) return NULL; + bed = get_elf_backend_data (abfd); + spec = bed->special_sections; + if (spec) + { + spec = _bfd_elf_get_special_section (sec->name, + bed->special_sections, + sec->use_rela_p); + if (spec != NULL) + return spec; + } + if (sec->name[0] != '.') return NULL; |