(coff_swap_scnhdr_in): Only remove padding when processing an executable.
authorNick Clifton <nickc@redhat.com>
Wed, 22 Oct 2003 15:12:58 +0000 (15:12 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 22 Oct 2003 15:12:58 +0000 (15:12 +0000)
bfd/ChangeLog
bfd/peicode.h

index 2d47b54ed9e36ed327215a9428837d35b67e065a..732db985a7479225bddea80ac5bd3977e8bbc85f 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-22  Nick Clifton  <nickc@redhat.com>
+
+       * peicode.h (coff_swap_scnhdr_in): Only remove padding when
+       processing an executable.
+
 2003-10-22  Jakub Jelinek  <jakub@redhat.com>
 
        * elflink.c (_bfd_elf_export_symbol): Adjust for globals and locals
index b3c1f29910b4aef4a184773f8866ea1f45e8a1c1..094f52d2aebe049d636393034d49976042ddb52f 100644 (file)
@@ -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;