This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] objcopy --extract-symbol


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e43fb83166ca5610e34cfba1dcf1216d0953aa8c

commit e43fb83166ca5610e34cfba1dcf1216d0953aa8c
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Oct 15 21:33:38 2015 +1030

    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.

Diff:
---
 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 88b7b86..77e33e4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index c6a6d2f..4773324 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 ce3ac62..9433f3d 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -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
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 2cd55fd..324456a 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]