mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
1999-09-11 Donn Terry <donn@interix.com>
* peicode.h (coff_swap_scnhdr_in): Don't check for a special section name of _BSS; check IMAGE_SCN_CNT_UNINITIALIZED_DATA instead. Don't clear the s_paddr field for an uninitialized data section.
This commit is contained in:
parent
1135238bd0
commit
e166a60fd9
@ -7,6 +7,11 @@
|
||||
|
||||
1999-09-11 Donn Terry <donn@interix.com>
|
||||
|
||||
* peicode.h (coff_swap_scnhdr_in): Don't check for a special
|
||||
section name of _BSS; check IMAGE_SCN_CNT_UNINITIALIZED_DATA
|
||||
instead. Don't clear the s_paddr field for an uninitialized data
|
||||
section.
|
||||
|
||||
* coffcode.h (coff_mkobject_hook): Set timestamp field in
|
||||
coff_data_type to f_timdat.
|
||||
* peicode.h (pe_mkobject_hook): Likewise.
|
||||
|
@ -1112,10 +1112,10 @@ coff_swap_aouthdr_out (abfd, in, out)
|
||||
}
|
||||
|
||||
static void
|
||||
coff_swap_scnhdr_in (abfd, ext, in)
|
||||
bfd *abfd;
|
||||
PTR ext;
|
||||
PTR in;
|
||||
coff_swap_scnhdr_in (abfd, ext, in)
|
||||
bfd *abfd;
|
||||
PTR ext;
|
||||
PTR in;
|
||||
{
|
||||
SCNHDR *scnhdr_ext = (SCNHDR *) ext;
|
||||
struct internal_scnhdr *scnhdr_int = (struct internal_scnhdr *) in;
|
||||
@ -1143,10 +1143,16 @@ static void
|
||||
scnhdr_int->s_vaddr += pe_data (abfd)->pe_opthdr.ImageBase;
|
||||
scnhdr_int->s_vaddr &= 0xffffffff;
|
||||
}
|
||||
if (strcmp (scnhdr_int->s_name, _BSS) == 0)
|
||||
|
||||
/* 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)
|
||||
{
|
||||
scnhdr_int->s_size = scnhdr_int->s_paddr;
|
||||
scnhdr_int->s_paddr = 0;
|
||||
/* This code used to set scnhdr_int->s_paddr to 0. However,
|
||||
coff_set_alignment_hook stores s_paddr in virt_size, which
|
||||
only works if it correctly holds the virtual size of the
|
||||
section. */
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user