From: Nick Clifton Date: Wed, 22 Oct 2003 15:12:58 +0000 (+0000) Subject: (coff_swap_scnhdr_in): Only remove padding when processing an executable. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b5a64628c132b5e5795b3e940dff3027ab415366;p=pf3gnuchains%2Fpf3gnuchains3x.git (coff_swap_scnhdr_in): Only remove padding when processing an executable. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2d47b54ed9..732db985a7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2003-10-22 Nick Clifton + + * peicode.h (coff_swap_scnhdr_in): Only remove padding when + processing an executable. + 2003-10-22 Jakub Jelinek * elflink.c (_bfd_elf_export_symbol): Adjust for globals and locals diff --git a/bfd/peicode.h b/bfd/peicode.h index b3c1f29910..094f52d2ae 100644 --- a/bfd/peicode.h +++ b/bfd/peicode.h @@ -258,12 +258,12 @@ coff_swap_scnhdr_in (abfd, ext, in) #ifndef COFF_NO_HACK_SCNHDR_SIZE /* If this section holds uninitialized data and is from an object file or from an executable image that has not initialized the field, - or if the physical size is padded, use the virtual size (stored in - s_paddr) instead. */ + or if the image is an executable file and the physical size is padded, + use the virtual size (stored in s_paddr) instead. */ if (scnhdr_int->s_paddr > 0 && (((scnhdr_int->s_flags & IMAGE_SCN_CNT_UNINITIALIZED_DATA) != 0 - && (! bfd_pe_executable_p (abfd) || scnhdr_int->s_size == 0)) - || scnhdr_int->s_size > scnhdr_int->s_paddr)) + && (! bfd_pe_executable_p (abfd) || scnhdr_int->s_size == 0)) + || (bfd_pe_executable_p (abfd) && scnhdr_int->s_size > scnhdr_int->s_paddr))) { scnhdr_int->s_size = scnhdr_int->s_paddr;