From c9ac89782df8198d0c48219364b15d3af5efa0dd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 22 Oct 2003 15:12:58 +0000 Subject: [PATCH] (coff_swap_scnhdr_in): Only remove padding when processing an executable. --- bfd/ChangeLog | 5 +++++ bfd/peicode.h | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) 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;