--- binutils.orig/bfd/elf.c 2019-09-10 10:57:33.391081672 +0100 +++ binutils-2.27/bfd/elf.c 2019-09-10 10:59:55.355010766 +0100 @@ -2324,9 +2324,18 @@ bfd_section_from_shdr (bfd *abfd, unsign else p_hdr = &esdt->rel.hdr; - /* PR 17512: file: 0b4f81b7. */ + /* PR 17512: file: 0b4f81b7. + Also see PR 24456, for a file which deliberately has two reloc + sections. */ if (*p_hdr != NULL) - goto fail; + { + _bfd_error_handler + /* xgettext:c-format */ + (_("%B: warning: multiple relocation sections for section %A \ +found - ignoring all but the first"), + abfd, target_sect); + goto success; + } hdr2 = (Elf_Internal_Shdr *) bfd_alloc (abfd, sizeof (*hdr2)); if (hdr2 == NULL) goto fail;