PR23788, objcopy: failed to find link section

Symbol tables can change when a number of objcopy options are used.
I figure string tables are similarly changeable.

	PR 23788
	* elf.c (section_match): Don't require a size match for SHT_SYMTAB
	or SHT_STRTAB.
This commit is contained in:
Alan Modra
2018-10-20 00:02:17 +10:30
parent 91ae256e33
commit ac85e67c05
2 changed files with 15 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2018-10-20 Alan Modra <amodra@gmail.com>
PR 23788
* elf.c (section_match): Don't require a size match for SHT_SYMTAB
or SHT_STRTAB.
2018-10-17 Alan Modra <amodra@gmail.com>
PR 23653

View File

@ -1299,15 +1299,15 @@ static bfd_boolean
section_match (const Elf_Internal_Shdr * a,
const Elf_Internal_Shdr * b)
{
return
a->sh_type == b->sh_type
&& (a->sh_flags & ~ SHF_INFO_LINK)
== (b->sh_flags & ~ SHF_INFO_LINK)
&& a->sh_addralign == b->sh_addralign
&& a->sh_size == b->sh_size
&& a->sh_entsize == b->sh_entsize
/* FIXME: Check sh_addr ? */
;
if (a->sh_type != b->sh_type
|| ((a->sh_flags ^ b->sh_flags) & ~SHF_INFO_LINK) != 0
|| a->sh_addralign != b->sh_addralign
|| a->sh_entsize != b->sh_entsize)
return FALSE;
if (a->sh_type == SHT_SYMTAB
|| a->sh_type == SHT_STRTAB)
return TRUE;
return a->sh_size == b->sh_size;
}
/* Find a section in OBFD that has the same characteristics