From e43fb83166ca5610e34cfba1dcf1216d0953aa8c Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 15 Oct 2015 21:33:38 +1030 Subject: [PATCH] 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. --- bfd/ChangeLog | 6 ++++++ bfd/elf32-v850.c | 7 ++++--- binutils/ChangeLog | 5 +++++ binutils/objcopy.c | 5 ----- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 88b7b862e9..77e33e4e05 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2015-10-15 Alan Modra + + * 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 PR ld/19123 diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index c6a6d2fa7a..47733243da 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -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)); diff --git a/binutils/ChangeLog b/binutils/ChangeLog index ce3ac62596..9433f3d7ef 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2015-10-15 Alan Modra + + * objcopy.c (copy_object): Don't omit bfd_copy_private_bfd_data + call when extract_symbol. + 2015-10-12 Andrew Burgess * od-elf32_avr.c (elf32_avr_dump_avr_prop): Fix printing of align diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 2cd55fd712..324456aaf2 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -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 -- 2.34.1