objcopy --extract-symbol

Calling bfd_copy_private_bfd_data is necessary to copy ELF file header
info.

binutils/
	* objcopy.c (copy_object): Don't omit bfd_copy_private_bfd_data
	call when extract_symbol.
bfd/
	* elf32-v850.c (v850_elf_copy_private_bfd_data): Remove assertion
	that input and output .note.renesas sections are same size.
	Instead, only copy input to output if they are.
This commit is contained in:
Alan Modra 2015-10-15 21:33:38 +10:30
parent 38bc821765
commit e43fb83166
4 changed files with 15 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2015-10-15 Alan Modra <amodra@gmail.com>
* elf32-v850.c (v850_elf_copy_private_bfd_data): Remove assertion
that input and output .note.renesas sections are same size.
Instead, only copy input to output if they are.
2015-10-15 Riku Voipio <riku.voipio@iki.fi>
PR ld/19123

View File

@ -2442,13 +2442,14 @@ v850_elf_copy_private_bfd_data (bfd * ibfd, bfd * obfd)
if ((onotes = bfd_get_section_by_name (obfd, V850_NOTE_SECNAME)) == NULL)
return TRUE;
if ((inotes = bfd_get_section_by_name (ibfd, V850_NOTE_SECNAME)) != NULL)
if ((inotes = bfd_get_section_by_name (ibfd, V850_NOTE_SECNAME)) == NULL)
return TRUE;
if (bfd_section_size (ibfd, inotes) == bfd_section_size (obfd, onotes))
{
bfd_byte * icont;
bfd_byte * ocont;
BFD_ASSERT (bfd_section_size (ibfd, inotes) == bfd_section_size (obfd, onotes));
if ((icont = elf_section_data (inotes)->this_hdr.contents) == NULL)
BFD_ASSERT (bfd_malloc_and_get_section (ibfd, inotes, & icont));

View File

@ -1,3 +1,8 @@
2015-10-15 Alan Modra <amodra@gmail.com>
* objcopy.c (copy_object): Don't omit bfd_copy_private_bfd_data
call when extract_symbol.
2015-10-12 Andrew Burgess <andrew.burgess@embecosm.com>
* od-elf32_avr.c (elf32_avr_dump_avr_prop): Fix printing of align

View File

@ -2305,11 +2305,6 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
}
}
/* Do not copy backend data if --extract-symbol is passed; anything
that needs to look at the section contents will fail. */
if (extract_symbol)
return TRUE;
/* Allow the BFD backend to copy any private data it understands
from the input BFD to the output BFD. This is done last to
permit the routine to look at the filtered symbol table, which is