/* Add an entry to the base file: */
static void
mcore_emit_base_file_entry(struct bfd_link_info *info, bfd *output_bfd,
                           asection *input_section, bfd_vma reloc_offset)
{
  bfd_vma addr = (reloc_offset - input_section->vma
                  + input_section->output_offset
                  + input_section->output_section->vma);

  if (coff_data(output_bfd)->pe) {
     addr -= pe_data(output_bfd)->pe_opthdr.ImageBase;
  }

  fwrite(&addr, (size_t)1UL, sizeof(addr), (FILE *)info->base_file);
}
Beispiel #2
0
static bfd_boolean
mcore_emit_base_file_entry (struct bfd_link_info *info,
			    bfd *output_bfd,
			    asection *input_section,
			    bfd_vma reloc_offset)
{
  bfd_vma addr = reloc_offset
                 - input_section->vma
                 + input_section->output_offset
                 + input_section->output_section->vma;

  if (coff_data (output_bfd)->pe)
     addr -= pe_data (output_bfd)->pe_opthdr.ImageBase;

  if (fwrite (&addr, sizeof (addr), 1, (FILE *) info->base_file) == 1)
    return TRUE;

  bfd_set_error (bfd_error_system_call);
  return FALSE;
}