For sections containing uninitialised data, only set their size to s_paddr
authorNick Clifton <nickc@redhat.com>
Thu, 5 Jul 2001 10:52:25 +0000 (10:52 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 5 Jul 2001 10:52:25 +0000 (10:52 +0000)
if this does not reset their size to zero.  MS's latest compilers will set
s_paddr to zero.

bfd/ChangeLog
bfd/peicode.h

index eb9d5d273fdeaa5be60d363155b4c7df03b4d407..ab720b10c05f5e449ab8185a4afc7a62eda29524 100644 (file)
@@ -1,3 +1,10 @@
+2001-07-05  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * peicode.h (coff_swap_scnhdr_in): For sections containing
+       uninitialised data, only set their size to s_paddr if this does
+       not reset their size to zero.  MS's latest compilers will set
+       s_paddr to zero.
+
 2001-07-04  H.J. Lu  <hjl@gnu.org>
 
        * bfd/elf32-mips.c (_bfd_mips_elf_final_write_processing):
index a0f74497df21f340ffd9e465710c4a83076178d9..20fe01cba65ac916296efae6d95c5e2a30819ec4 100644 (file)
@@ -275,7 +275,8 @@ coff_swap_scnhdr_in (abfd, ext, in)
 #ifndef COFF_NO_HACK_SCNHDR_SIZE
   /* If this section holds uninitialized data, use the virtual size
      (stored in s_paddr) instead of the physical size.  */
-  if ((scnhdr_int->s_flags & IMAGE_SCN_CNT_UNINITIALIZED_DATA) != 0)
+  if ((scnhdr_int->s_flags & IMAGE_SCN_CNT_UNINITIALIZED_DATA) != 0
+      && (scnhdr_int->s_paddr > 0))
     {
       scnhdr_int->s_size = scnhdr_int->s_paddr;
       /* This code used to set scnhdr_int->s_paddr to 0.  However,