_bfd_free_cached_info

Alan Modra amodra@gmail.com
Thu Jun 8 01:01:11 GMT 2023


ELF targets with target-specific free_cache_info functions need to
call _bfd_elf_free_cached_info, not _bfd_generic_bfd_free_cached_info.
Not getting this right of course meant all the stashed dwarf info
showed up as direct memory leaks.

	* elf64-ppc.c (ppc64_elf_free_cached_info): Call
	_bfd_elf_free_cached_info.
	* elfnn-aarch64.c (elfNN_aarch64_bfd_free_cached_info): Likewise.

diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 9c0762a15ef..0e9a7ff96c3 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -18406,7 +18406,7 @@ ppc64_elf_free_cached_info (bfd *abfd)
       if (opd->reloc_count == 0)
 	free (ppc64_elf_section_data (opd)->u.opd.u.contents);
 
-  return _bfd_generic_bfd_free_cached_info (abfd);
+  return _bfd_elf_free_cached_info (abfd);
 }
 
 #include "elf64-target.h"
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index a75cd365a02..4592bd6da27 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -8742,7 +8742,7 @@ elfNN_aarch64_bfd_free_cached_info (bfd *abfd)
     bfd_map_over_sections (abfd,
 			   unrecord_section_via_map_over_sections, NULL);
 
-  return _bfd_generic_bfd_free_cached_info (abfd);
+  return _bfd_elf_free_cached_info (abfd);
 }
 
 /* Create dynamic sections. This is different from the ARM backend in that

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list