Use correct size for mips64 .rld_map section.
authorvisa <visa@openbsd.org>
Tue, 29 Nov 2022 15:38:00 +0000 (15:38 +0000)
committervisa <visa@openbsd.org>
Tue, 29 Nov 2022 15:38:00 +0000 (15:38 +0000)
From FreeBSD commit 36afc9ab6c1c7fdb2e40bdcfde169501d962dd84

OK kettenis@

gnu/usr.bin/binutils-2.17/bfd/elfxx-mips.c

index 39945ba..c505915 100644 (file)
@@ -557,6 +557,10 @@ static bfd *reldyn_sorting_bfd;
 #define MIPS_ELF_DYN_SIZE(abfd) \
   (get_elf_backend_data (abfd)->s->sizeof_dyn)
 
+/* The size of the rld_map pointer.  */
+#define MIPS_ELF_RLD_MAP_SIZE(abfd) \
+  (get_elf_backend_data (abfd)->s->arch_size / 8)
+
 /* The size of a GOT entry.  */
 #define MIPS_ELF_GOT_SIZE(abfd) \
   (get_elf_backend_data (abfd)->s->arch_size / 8)
@@ -7432,7 +7436,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
        {
          /* We add a room for __rld_map.  It will be filled in by the
             rtld to contain a pointer to the _r_debug structure.  */
-         s->size += 4;
+         s->size += MIPS_ELF_RLD_MAP_SIZE (output_bfd);
        }
       else if (SGI_COMPAT (output_bfd)
               && strncmp (name, ".compact_rel", 12) == 0)