Re: Add section caches to coff_data_type

Another thing, section target_index is renumbered in
coff_compute_section_file_positions and _bfd_xcoff_bfd_final_link.  I
don't know that there is currently any way that the output bfd
section_by_target_index could be populated before this point but
clear them out so no one need worry about it.

	* coffcode.h (coff_compute_section_file_positions): Clear
	section_by_target_index hash table when changing target_index.
	(_bfd_xcoff_bfd_final_link): Likewise.
This commit is contained in:
Alan Modra 2023-05-18 17:43:14 +09:30
parent 92240b1957
commit 204d627e83
2 changed files with 5 additions and 0 deletions

View File

@ -3067,6 +3067,9 @@ coff_compute_section_file_positions (bfd * abfd)
sofar += bfd_coff_scnhsz (abfd);
#endif
if (coff_data (abfd)->section_by_target_index)
htab_empty (coff_data (abfd)->section_by_target_index);
#ifdef COFF_IMAGE_WITH_PE
{
/* PE requires the sections to be in memory order when listed in

View File

@ -7076,6 +7076,8 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
/* Reset the section indices after inserting the new
sections. */
if (xcoff_data (abfd)->coff.section_by_target_index)
htab_empty (xcoff_data (abfd)->coff.section_by_target_index);
indx = 0;
for (o = abfd->sections; o != NULL; o = o->next)
{