* 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.
This commit is contained in:
Steve Chamberlain 1995-08-29 23:26:43 +00:00
parent 593d18d36c
commit c7f6ebe2c3
2 changed files with 13 additions and 6 deletions

View File

@ -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. (coff-i386_rtype_to_howto): Understand R_IMAGEBASE type.
* coffcode.h (sec_to_styp_flags): .edata is data. * coffcode.h (sec_to_styp_flags): .edata is data.
(coff_compute_section_file_positions): Get page size right for PE. (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. (fill_pe_header_info): Fix fields.
(coff_write_object_contents): Remove end_of_image calc. (coff_write_object_contents): Remove end_of_image calc.
(_bfd_coff_generate_reloc_section): Remove orphaned comment. (_bfd_coff_generate_reloc_section): Remove orphaned comment.
* coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE. * coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE.
Swap in PE header.
(coff_swap_scnhdr_out): Setup PE flags correctly. (coff_swap_scnhdr_out): Setup PE flags correctly.
* reloc.c (BFD_RELOC_RVA): New field. * reloc.c (BFD_RELOC_RVA): New field.

View File

@ -1513,17 +1513,22 @@ coff_compute_section_file_positions (abfd)
#endif #endif
unsigned int count; unsigned int count;
#ifdef COFF_IMAGE_WITH_PE #ifdef COFF_IMAGE_WITH_PE
page_size = pe_value (&(coff_data (abfd)->link_info->pe_info->file_alignment), if (coff_data (abfd)->link_info)
PE_DEF_FILE_ALIGNMENT); {
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 #else
page_size = COFF_PAGE_SIZE; page_size = COFF_PAGE_SIZE;
#endif #endif
if (bfd_get_start_address (abfd)) if (bfd_get_start_address (abfd))
{ {
/* A start address may have been added to the original file. In this /* 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; abfd->flags |= EXEC_P;
} }
@ -1547,7 +1552,7 @@ coff_compute_section_file_positions (abfd)
stores codeview debug data. */ stores codeview debug data. */
if (strcmp (current->name, ".junk") == 0) if (strcmp (current->name, ".junk") == 0)
{ {
continue; continue;
} }
#endif #endif
@ -1558,7 +1563,7 @@ coff_compute_section_file_positions (abfd)
#ifndef I960 #ifndef I960
{ {
/* make sure this section is aligned on the right boundary - by /* 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; old_sofar = sofar;
sofar = BFD_ALIGN (sofar, 1 << current->alignment_power); sofar = BFD_ALIGN (sofar, 1 << current->alignment_power);