From 204d627e83f440dc62871139a688b58c42149f59 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 18 May 2023 17:43:14 +0930 Subject: [PATCH] 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. --- bfd/coffcode.h | 3 +++ bfd/xcofflink.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 777515e82e1..2d429828822 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -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 diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index b57ed21afb9..a27721301dd 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -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) { -- 2.30.2