diff options
author | Steve Chamberlain <sac@cygnus> | 1995-08-29 23:26:43 +0000 |
---|---|---|
committer | Steve Chamberlain <sac@cygnus> | 1995-08-29 23:26:43 +0000 |
commit | c7f6ebe2c31b81c1dae00a784a6e6eb61bd8231f (patch) | |
tree | 007fa9ab4fdc80e8300f08b090c2d710ca5c01bc /bfd | |
parent | 593d18d36cce821332c93cd58b587ed5d0735fb8 (diff) | |
download | gdb-c7f6ebe2c31b81c1dae00a784a6e6eb61bd8231f.zip gdb-c7f6ebe2c31b81c1dae00a784a6e6eb61bd8231f.tar.gz gdb-c7f6ebe2c31b81c1dae00a784a6e6eb61bd8231f.tar.bz2 |
* coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE.
Swap in PE header.
* coffcode.h (coff_write_object_contents): Remove #if0ed code
Only remove empty sections in PE inmage files.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 2 | ||||
-rw-r--r-- | bfd/coffcode.h | 17 |
2 files changed, 13 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bb4ed7f..c4560fc 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -10,10 +10,12 @@ Tue Aug 29 13:50:21 1995 steve chamberlain <sac@slash.cygnus.com> (coff-i386_rtype_to_howto): Understand R_IMAGEBASE type. * coffcode.h (sec_to_styp_flags): .edata is data. (coff_compute_section_file_positions): Get page size right for PE. + Pagesize info is only valid in PE image files. (fill_pe_header_info): Fix fields. (coff_write_object_contents): Remove end_of_image calc. (_bfd_coff_generate_reloc_section): Remove orphaned comment. * coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE. + Swap in PE header. (coff_swap_scnhdr_out): Setup PE flags correctly. * reloc.c (BFD_RELOC_RVA): New field. diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 7716936..76d8fd4 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -1513,17 +1513,22 @@ coff_compute_section_file_positions (abfd) #endif unsigned int count; + #ifdef COFF_IMAGE_WITH_PE - page_size = pe_value (&(coff_data (abfd)->link_info->pe_info->file_alignment), - PE_DEF_FILE_ALIGNMENT); + if (coff_data (abfd)->link_info) + { + page_size = pe_value (&(coff_data (abfd)->link_info->pe_info->file_alignment), + PE_DEF_FILE_ALIGNMENT); + } + else + page_size = PE_DEF_FILE_ALIGNMENT; #else page_size = COFF_PAGE_SIZE; #endif - if (bfd_get_start_address (abfd)) { /* A start address may have been added to the original file. In this - case it will need an optional header to record it. */ + case it will need an optional header to record it. */ abfd->flags |= EXEC_P; } @@ -1547,7 +1552,7 @@ coff_compute_section_file_positions (abfd) stores codeview debug data. */ if (strcmp (current->name, ".junk") == 0) { - continue; + continue; } #endif @@ -1558,7 +1563,7 @@ coff_compute_section_file_positions (abfd) #ifndef I960 { /* make sure this section is aligned on the right boundary - by - padding the previous section up if necessary */ + padding the previous section up if necessary */ old_sofar = sofar; sofar = BFD_ALIGN (sofar, 1 << current->alignment_power); |