OSDN Git Service

(coff_swap_scnhdr_in): Only remove padding when processing an executable.
authornickc <nickc>
Wed, 22 Oct 2003 15:12:58 +0000 (15:12 +0000)
committernickc <nickc>
Wed, 22 Oct 2003 15:12:58 +0000 (15:12 +0000)
bfd/ChangeLog
bfd/peicode.h

index 2d47b54..732db98 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 b3c1f29..094f52d 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;