* cofflink.c (_bfd_coff_generic_relocate_section): If doing a
relocateable link, just skip pc_relative pcrel_offset relocs. * coff-arm.c (coff_arm_rtype_to_howto): Return a different howto structure for an ARM26 reloc which can be resolved. (coff_arm_adjust_symndx): Only convert ARM26 to ARM26D if the reloc can be resolved. PR 11599.
This commit is contained in:
parent
fbfa4d54f8
commit
5a50eec623
2 changed files with 19 additions and 4 deletions
|
@ -1,5 +1,12 @@
|
||||||
Mon Feb 3 11:54:06 1997 Ian Lance Taylor <ian@cygnus.com>
|
Mon Feb 3 11:54:06 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
* cofflink.c (_bfd_coff_generic_relocate_section): If doing a
|
||||||
|
relocateable link, just skip pc_relative pcrel_offset relocs.
|
||||||
|
* coff-arm.c (coff_arm_rtype_to_howto): Return a different howto
|
||||||
|
structure for an ARM26 reloc which can be resolved.
|
||||||
|
(coff_arm_adjust_symndx): Only convert ARM26 to ARM26D if the
|
||||||
|
reloc can be resolved.
|
||||||
|
|
||||||
* coff-h8300.c (h8300_reloc16_extra_cases): Correct off by one
|
* coff-h8300.c (h8300_reloc16_extra_cases): Correct off by one
|
||||||
error in overflow check for R_RELBYTE.
|
error in overflow check for R_RELBYTE.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* COFF specific linker code.
|
/* COFF specific linker code.
|
||||||
Copyright 1994, 1995, 1996 Free Software Foundation, Inc.
|
Copyright 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||||
Written by Ian Lance Taylor, Cygnus Support.
|
Written by Ian Lance Taylor, Cygnus Support.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -2423,6 +2423,14 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
|
||||||
if (howto == NULL)
|
if (howto == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
/* If we are doing a relocateable link, then we can just ignore
|
||||||
|
a PC relative reloc that is pcrel_offset. It will already
|
||||||
|
have the correct value. */
|
||||||
|
if (info->relocateable
|
||||||
|
&& howto->pc_relative
|
||||||
|
&& howto->pcrel_offset)
|
||||||
|
continue;
|
||||||
|
|
||||||
val = 0;
|
val = 0;
|
||||||
|
|
||||||
if (h == NULL)
|
if (h == NULL)
|
||||||
|
@ -2497,10 +2505,10 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
|
||||||
break;
|
break;
|
||||||
case bfd_reloc_outofrange:
|
case bfd_reloc_outofrange:
|
||||||
(*_bfd_error_handler)
|
(*_bfd_error_handler)
|
||||||
("%s: bad reloc address in section `%s' at address 0x%lx",
|
("%s: bad reloc address 0x%lx in section `%s'",
|
||||||
bfd_get_filename (input_bfd),
|
bfd_get_filename (input_bfd),
|
||||||
bfd_get_section_name (input_bfd, input_section),
|
(unsigned long) rel->r_vaddr,
|
||||||
(unsigned long) rel->r_vaddr);
|
bfd_get_section_name (input_bfd, input_section));
|
||||||
return false;
|
return false;
|
||||||
case bfd_reloc_overflow:
|
case bfd_reloc_overflow:
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue