aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-10-22 15:12:58 +0000
committerNick Clifton <nickc@redhat.com>2003-10-22 15:12:58 +0000
commitc9ac89782df8198d0c48219364b15d3af5efa0dd (patch)
treec29e7a8ce2d65d1b68e4cb6a611e4531a152f773
parent108ba30509ad6169d0f2e06b755fa39a2c28a946 (diff)
downloadgdb-c9ac89782df8198d0c48219364b15d3af5efa0dd.zip
gdb-c9ac89782df8198d0c48219364b15d3af5efa0dd.tar.gz
gdb-c9ac89782df8198d0c48219364b15d3af5efa0dd.tar.bz2
(coff_swap_scnhdr_in): Only remove padding when processing an executable.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/peicode.h8
2 files changed, 9 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2d47b54..732db98 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
diff --git a/bfd/peicode.h b/bfd/peicode.h
index b3c1f29..094f52d 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;