summaryrefslogtreecommitdiff
path: root/bfd/coffcode.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/coffcode.h')
-rw-r--r--bfd/coffcode.h36
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