mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
Add code to emit relocs into a base file.
This commit is contained in:
parent
98c1d4aab7
commit
69e70d3056
@ -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
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user