Properly convert objects between different ELF classes
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 10 Jul 2015 21:20:20 +0000 (14:20 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 10 Jul 2015 21:27:39 +0000 (14:27 -0700)
commit889884731e09b46e4c2ecb051dfde1e2f69d2b47
treea4e2caa2763562a127f970dad138ab6769b769be
parenta0e28e54675fd92e73df71fed5d4f6c718f40102
Properly convert objects between different ELF classes

The output SHF_COMPRESSED section size is different from input if
ELF classes of input and output aren't the same.  We must adjust
the section sizes as well as the compression headers in
SHF_COMPRESSED sections when converting objects between different
ELF classes.

bfd/

 PR binutils/18656
 * bfd.c (bfd_convert_section_size): New function.
 (bfd_convert_section_contents): Likewise.
 * bfd-in2.h: Regenerated.

binutils/

2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>

 PR binutils/18656
 * objcopy.c (setup_section): Call bfd_convert_section_size
 to get the output section size.
 (copy_section): Get the section size from the output section
 and call bfd_get_full_section_contents to convert section
 contents for output.

binutils/testsuite/

 PR binutils/18656
 * binutils-all/compress.exp (convert_test): New proc.
 Run conversion tests between x86-64 and x32.
bfd/ChangeLog
bfd/bfd-in2.h
bfd/bfd.c
binutils/ChangeLog
binutils/objcopy.c
binutils/testsuite/ChangeLog
binutils/testsuite/binutils-all/compress.exp