(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.
#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;
}
stores codeview debug data. */
if (strcmp (current->name, ".junk") == 0)
{
- continue;
+ continue;
}
#endif
#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);