From dd18b8912be69504e6302fa296116988c8866acf Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 23 Sep 2003 00:40:49 +0000 Subject: * elf-bfd.h (struct bfd_elf_special_section): Remove "suffix". Change type of prefix_length and suffix_length to int. Rename "attributes" to "attr". Comment. (_bfd_elf_get_sec_type_attr): Update prototype. * elf.c (get_special_section): Rewrite. (_bfd_elf_get_sec_type_attr): Return struct rather than passing in attr and type pointers. (_bfd_elf_new_section_hook): Adjust for above. (special_sections): Merge suffix with prefix. Set prefix_length for all entries. Set suffix_length appropriately. * elf32-m32r.c (m32r_elf_special_sections): Likewise. * elf32-m68hc11.c (elf32_m68hc11_special_sections): Likewise. * elf32-m68hc12.c (elf32_m68hc12_special_sections): Likewise. * elf32-mcore.c (mcore_elf_special_sections): Likewise. * elf32-sh64.c (sh64_elf_special_sections): Likewise. * elf32-v850.c (v850_elf_special_sections): Likewise. * elf32-xtensa.c (elf_xtensa_special_sections): Likewise. * elf64-alpha.c (elf64_alpha_special_sections): Likewise. * elf64-hppa.c (elf64_hppa_special_sections): Likewise. * elf64-ppc.c (ppc64_elf_special_sections): Likewise. * elf64-sh64.c (sh64_elf64_special_sections): Likewise. * elfxx-ia64.c (elfNN_ia64_special_sections): Likewise. * elfxx-mips.c (_bfd_mips_elf_special_sections): Likewise. * elf32-ppc.c (ppc_elf_special_sections): Likewise. Fix .plt flags. --- bfd/elf-bfd.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'bfd/elf-bfd.h') diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index abbe377e491..99036949adf 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -511,11 +511,16 @@ typedef enum { struct bfd_elf_special_section { const char *prefix; - size_t prefix_length; - const char *suffix; - size_t suffix_length; + int prefix_length; + /* 0 means name must match PREFIX exactly. + -1 means name must start with PREFIX followed by an arbitrary string. + -2 means name must match PREFIX exactly or consist of PREFIX followed + by a dot then anything. + > 0 means name must start with the first PREFIX_LENGTH chars of + PREFIX and finish with the last SUFFIX_LENGTH chars of PREFIX. */ + int suffix_length; int type; - int attributes; + int attr; }; struct elf_backend_data @@ -1384,8 +1389,8 @@ extern bfd_boolean _bfd_elf_new_section_hook (bfd *, asection *); extern bfd_boolean _bfd_elf_init_reloc_shdr (bfd *, Elf_Internal_Shdr *, asection *, bfd_boolean); -extern bfd_boolean _bfd_elf_get_sec_type_attr - (bfd *, const char *, int *, int *); +extern const struct bfd_elf_special_section *_bfd_elf_get_sec_type_attr + (bfd *, const char *); /* If the target doesn't have reloc handling written yet: */ extern void _bfd_elf_no_info_to_howto -- cgit v1.2.1