/* Intel i860 specific support for 32-bit ELF.
- Copyright 1993, 1995, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright 1993, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Full i860 support contributed by Jason Eckhardt <jle@cygnus.com>.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
#include "bfd.h"
#include "sysdep.h"
{
bfd_vma insn;
bfd_vma relocation;
- bfd_size_type sz;
bfd_byte *addr;
if (output_bfd != NULL
relocation += symbol->section->output_offset;
relocation += reloc_entry->addend;
- sz = input_section->rawsize ? input_section->rawsize : input_section->size;
- if (reloc_entry->address > sz)
+ if (reloc_entry->address > bfd_get_section_limit (abfd, input_section))
return bfd_reloc_outofrange;
/* Adjust for PC-relative relocation. */
{
bfd_vma insn;
bfd_vma relocation;
- bfd_size_type sz;
bfd_byte *addr;
if (output_bfd != NULL
relocation += symbol->section->output_offset;
relocation += reloc_entry->addend;
- sz = input_section->rawsize ? input_section->rawsize : input_section->size;
- if (reloc_entry->address > sz)
+ if (reloc_entry->address > bfd_get_section_limit (abfd, input_section))
return bfd_reloc_outofrange;
/* Adjust for PC-relative relocation. */
{
bfd_vma insn;
bfd_vma relocation;
- bfd_size_type sz;
bfd_byte *addr;
if (output_bfd != NULL
relocation += reloc_entry->addend;
relocation += 0x8000;
- sz = input_section->rawsize ? input_section->rawsize : input_section->size;
- if (reloc_entry->address > sz)
+ if (reloc_entry->address > bfd_get_section_limit (abfd, input_section))
return bfd_reloc_outofrange;
addr = (bfd_byte *) data + reloc_entry->address;
{
bfd_vma insn;
bfd_vma relocation;
- bfd_size_type sz;
bfd_byte *addr;
if (output_bfd != NULL
relocation += symbol->section->output_offset;
relocation += reloc_entry->addend;
- sz = input_section->rawsize ? input_section->rawsize : input_section->size;
- if (reloc_entry->address > sz)
+ if (reloc_entry->address > bfd_get_section_limit (abfd, input_section))
return bfd_reloc_outofrange;
addr = (bfd_byte *) data + reloc_entry->address;
int r_type;
r_type = ELF32_R_TYPE (rel->r_info);
-
-#if 0
- if ( r_type == R_860_GNU_VTINHERIT
- || r_type == R_860_GNU_VTENTRY)
- continue;
-#endif
-
r_symndx = ELF32_R_SYM (rel->r_info);
howto = lookup_howto ((unsigned) ELF32_R_TYPE (rel->r_info));
{
case bfd_reloc_overflow:
r = info->callbacks->reloc_overflow
- (info, name, howto->name, (bfd_vma) 0,
- input_bfd, input_section, rel->r_offset);
+ (info, (h ? &h->root : NULL), name, howto->name,
+ (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
break;
case bfd_reloc_undefined: