Add code to emit relocs into a base file.

This commit is contained in:
Nick Clifton 1999-08-19 13:04:45 +00:00
parent 98c1d4aab7
commit 69e70d3056
2 changed files with 34 additions and 1 deletions

View File

@ -1,3 +1,10 @@
1999-08-19 Nick Clifton <nickc@cygnus.com>
* coff-mcore.c (mcore_emit_base_file_entry): New function: Emit
relocations into the base file.
(coff_mcore_relocate_section): Call mcore_emit_base_file_entry if
we are building a base file.
1999-08-19 Nick Clifton <nickc@cygnus.com>
* elf32-arm.h (arm_add_to_rel): New function. Add a value to

View File

@ -1,5 +1,5 @@
/* BFD back-end for Motorolla MCore COFF/PE
Copyright 1999 Free Software Foundation, Inc.
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@ -248,6 +248,25 @@ coff_mcore_link_hash_table_create (abfd)
return & ret->root.root;
}
/* Add an entry to the base file. */
static void
mcore_emit_base_file_entry (info, output_bfd, input_section, reloc_offset)
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, 1, sizeof (addr), (FILE *) info->base_file);
}
/*ARGSUSED*/
static bfd_reloc_status_type
mcore_coff_unsupported_reloc (abfd, reloc_entry, symbol, data, input_section,
@ -512,6 +531,13 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
break;
}
if (info->base_file)
{
/* Emit a reloc if the backend thinks it needs it. */
if (sym && pe_data (output_bfd)->in_reloc_p (output_bfd, howto))
mcore_emit_base_file_entry (info, output_bfd, input_section, rel->r_vaddr);
}
switch (rstat)
{
default: