From 29ef70053f959e79ee068480e53ff9c490b891b3 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 8 Jul 2005 00:26:53 +0000 Subject: 2005-07-07 H.J. Lu * 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. --- bfd/elf.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'bfd/elf.c') diff --git a/bfd/elf.c b/bfd/elf.c index 130ec7a..ff46a5e 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -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; -- cgit v1.1