2.18.4.1 Define the derived structures

You must define a structure for an entry in the hash table, and a structure for the hash table itself.

The first field in the structure for an entry in the hash table must be of the type used for an entry in the hash table you are deriving from. If you are deriving from a basic hash table this is struct bfd_hash_entry, which is defined in bfd.h. The first field in the structure for the hash table itself must be of the type of the hash table you are deriving from itself. If you are deriving from a basic hash table, this is struct bfd_hash_table.

For example, the linker hash table defines struct bfd_link_hash_entry (in bfdlink.h). The first field, root, is of type struct bfd_hash_entry. Similarly, the first field in struct bfd_link_hash_table, table, is of type struct bfd_hash_table.