_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