Fix for H8 ld problem.

This commit is contained in:
Alan Modra 2000-11-07 05:04:04 +00:00
parent 44f5c83ad3
commit d562d2fbf0
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2000-11-07 Alan Modra <alan@linuxcare.com.au>
* coff-h8300.c (special): Adjust reloc address.
2000-11-06 Steve Ellcey <sje@cup.hp.com>
* archures.c (bfd_mach_ia64_elf64, bfd_mach_ia64_elf32): Add defines

View File

@ -198,7 +198,7 @@ h8300_coff_link_hash_table_create (abfd)
the code in reloc.c assumes that we can manipulate the targets of
the pcrel branches. This isn't so, since the H8/300 can do relaxing,
which means that the gap after the instruction may not be enough to
contain the offset required for the branch, so we have to use the only
contain the offset required for the branch, so we have to use only
the addend until the final link. */
static bfd_reloc_status_type
@ -215,6 +215,8 @@ special (abfd, reloc_entry, symbol, data, input_section, output_bfd,
if (output_bfd == (bfd *) NULL)
return bfd_reloc_continue;
/* Adjust the reloc address to that in the output section. */
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;
}
@ -888,6 +890,7 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
/* Write it. */
bfd_put_8 (abfd, tmp, data + dst_address - 2);
break;
case 0x5c:
/* bsr:16 -> bsr:8 */
bfd_put_8 (abfd, 0x55, data + dst_address - 2);