diff options
Diffstat (limited to 'bfd/coffcode.h')
-rw-r--r-- | bfd/coffcode.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 974c8ad9854..ab6f797b324 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -731,6 +731,36 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags) #ifndef COFF_WITH_PE +static hashval_t +htab_hash_section_index (const void * entry) +{ + const struct bfd_section * sec = entry; + return sec->index; +} + +static int +htab_eq_section_index (const void * e1, const void * e2) +{ + const struct bfd_section * sec1 = e1; + const struct bfd_section * sec2 = e2; + return sec1->index == sec2->index; +} + +static hashval_t +htab_hash_section_target_index (const void * entry) +{ + const struct bfd_section * sec = entry; + return sec->target_index; +} + +static int +htab_eq_section_target_index (const void * e1, const void * e2) +{ + const struct bfd_section * sec1 = e1; + const struct bfd_section * sec2 = e2; + return sec1->target_index == sec2->target_index; +} + static bool styp_to_sec_flags (bfd *abfd, void * hdr, @@ -2062,6 +2092,7 @@ coff_mkobject (bfd * abfd) abfd->tdata.coff_obj_data = bfd_zalloc (abfd, amt); if (abfd->tdata.coff_obj_data == NULL) return false; + coff = coff_data (abfd); coff->symbols = NULL; coff->conversion_table = NULL; @@ -2154,6 +2185,11 @@ coff_mkobject_hook (bfd * abfd, abfd->flags |= HAS_DEBUG; #endif + coff->section_by_index + = htab_create (10, htab_hash_section_index, htab_eq_section_index, NULL); + coff->section_by_target_index = htab_create + (10, htab_hash_section_target_index, htab_eq_section_target_index, NULL); + return coff; } #endif |