/* V850-specific support for 32-bit ELF
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
}
else
{
- (*_bfd_error_handler) (_("FAILED to find previous HI16 reloc"));
+ _bfd_error_handler (_("FAILED to find previous HI16 reloc"));
return FALSE;
}
}
r_type = ELF32_R_TYPE (dst->r_info);
if (r_type >= (unsigned int) R_V850_max)
{
+ /* xgettext:c-format */
_bfd_error_handler (_("%B: invalid V850 reloc number: %d"), abfd, r_type);
r_type = 0;
}
r_type = ELF32_R_TYPE (dst->r_info);
if (r_type >= (unsigned int) R_V850_max)
{
+ /* xgettext:c-format */
_bfd_error_handler (_("%B: invalid V850 reloc number: %d"), abfd, r_type);
r_type = 0;
}
switch ((int) r)
{
case bfd_reloc_overflow:
- if (! ((*info->callbacks->reloc_overflow)
- (info, (h ? &h->root : NULL), name, howto->name,
- (bfd_vma) 0, input_bfd, input_section,
- rel->r_offset)))
- return FALSE;
+ (*info->callbacks->reloc_overflow)
+ (info, (h ? &h->root : NULL), name, howto->name,
+ (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
break;
case bfd_reloc_undefined:
- if (! ((*info->callbacks->undefined_symbol)
- (info, name, input_bfd, input_section,
- rel->r_offset, TRUE)))
- return FALSE;
+ (*info->callbacks->undefined_symbol)
+ (info, name, input_bfd, input_section, rel->r_offset, TRUE);
break;
case bfd_reloc_outofrange:
/* fall through */
common_error:
- if (!((*info->callbacks->warning)
- (info, msg, name, input_bfd, input_section,
- rel->r_offset)))
- return FALSE;
+ (*info->callbacks->warning) (info, msg, name, input_bfd,
+ input_section, rel->r_offset);
break;
}
}
return TRUE;
}
-/* Copy backend specific data from one object module to another. */
+/* Copy a v850 note section from one object module to another. */
-static bfd_boolean
-v850_elf_copy_private_bfd_data (bfd * ibfd, bfd * obfd)
+static void
+v850_elf_copy_notes (bfd *ibfd, bfd *obfd)
{
asection * onotes;
asection * inotes;
skip the merge. The normal input to output section
copying will take care of everythng for us. */
if ((onotes = bfd_get_section_by_name (obfd, V850_NOTE_SECNAME)) == NULL)
- return TRUE;
+ return;
if ((inotes = bfd_get_section_by_name (ibfd, V850_NOTE_SECNAME)) == NULL)
- return TRUE;
+ return;
if (bfd_section_size (ibfd, inotes) == bfd_section_size (obfd, onotes))
{
/* Copy/overwrite notes from the input to the output. */
memcpy (ocont, icont, bfd_section_size (obfd, onotes));
}
+}
- return TRUE;
+/* Copy backend specific data from one object module to another. */
+
+static bfd_boolean
+v850_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
+{
+ v850_elf_copy_notes (ibfd, obfd);
+ return _bfd_elf_copy_private_bfd_data (ibfd, obfd);
}
#define bfd_elf32_bfd_copy_private_bfd_data v850_elf_copy_private_bfd_data
if (oval == EF_RH850_DATA_ALIGN4)
{
_bfd_error_handler
+ /* xgettext:c-format */
(_("error: %B needs 8-byte aligment but %B is set for 4-byte alignment"),
ibfd, obfd);
result = FALSE;
case V850_NOTE_DATA_SIZE:
if (oval == EF_RH850_DOUBLE32)
{
- _bfd_error_handler (_("error: %B uses 64-bit doubles but %B uses 32-bit doubles"),
- ibfd, obfd);
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("error: %B uses 64-bit doubles but "
+ "%B uses 32-bit doubles"), ibfd, obfd);
result = FALSE;
}
else
case V850_NOTE_FPU_INFO:
if (oval == EF_RH850_FPU20)
{
- _bfd_error_handler (_("error: %B uses FPU-3.0 but %B only supports FPU-2.0"),
- ibfd, obfd);
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("error: %B uses FPU-3.0 but %B only supports FPU-2.0"),
+ ibfd, obfd);
result = FALSE;
}
else
to the output object file when linking. */
static bfd_boolean
-v850_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
+v850_elf_merge_private_bfd_data (bfd *ibfd, struct bfd_link_info *info)
{
+ bfd *obfd = info->output_bfd;
flagword out_flags;
flagword in_flags;
bfd_boolean result = TRUE;
{
if ((in_flags & EF_V800_850E3) != (out_flags & EF_V800_850E3))
{
- _bfd_error_handler (_("%B: Architecture mismatch with previous modules"),
- ibfd);
+ _bfd_error_handler
+ (_("%B: Architecture mismatch with previous modules"), ibfd);
elf_elfheader (obfd)->e_flags |= EF_V800_850E3;
}
return result;
}
- _bfd_error_handler (_("%B: Architecture mismatch with previous modules"),
- ibfd);
+ _bfd_error_handler
+ (_("%B: Architecture mismatch with previous modules"), ibfd);
}
return result;
}
else
{
- ((*_bfd_error_handler)
- ("%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns",
- bfd_get_filename (abfd), (unsigned long) irel->r_offset));
-
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%s: 0x%lx: warning: R_V850_LONGCALL points to "
+ "unrecognized insns"),
+ bfd_get_filename (abfd), (unsigned long) irel->r_offset);
continue;
}
if (no_match >= 0)
{
- ((*_bfd_error_handler)
- ("%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x",
- bfd_get_filename (abfd), (unsigned long) irel->r_offset+no_match, insn[no_match]));
-
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%s: 0x%lx: warning: R_V850_LONGCALL points to "
+ "unrecognized insn 0x%x"),
+ bfd_get_filename (abfd),
+ (unsigned long) irel->r_offset + no_match,
+ insn[no_match]);
continue;
}
|| lo_irelfn == irelend
|| irelcall == irelend)
{
- ((*_bfd_error_handler)
- ("%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc",
- bfd_get_filename (abfd), (unsigned long) irel->r_offset ));
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%s: 0x%lx: warning: R_V850_LONGCALL points to "
+ "unrecognized reloc"),
+ bfd_get_filename (abfd), (unsigned long) irel->r_offset);
continue;
}
if (symval + irelcall->r_addend != irelcall->r_offset + 4)
{
- ((*_bfd_error_handler)
- ("%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx",
- bfd_get_filename (abfd), (unsigned long) irel->r_offset, irelcall->r_offset ));
-
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%s: 0x%lx: warning: R_V850_LONGCALL points to "
+ "unrecognized reloc 0x%lx"),
+ bfd_get_filename (abfd), (unsigned long) irel->r_offset,
+ irelcall->r_offset);
continue;
}
}
else
{
- ((*_bfd_error_handler)
- ("%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns",
- bfd_get_filename (abfd), (unsigned long) irel->r_offset));
-
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%s: 0x%lx: warning: R_V850_LONGJUMP points to "
+ "unrecognized insns"),
+ bfd_get_filename (abfd), (unsigned long) irel->r_offset);
continue;
}
if (no_match >= 0)
{
- ((*_bfd_error_handler)
- ("%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x",
- bfd_get_filename (abfd), (unsigned long) irel->r_offset+no_match, insn[no_match]));
-
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%s: 0x%lx: warning: R_V850_LONGJUMP points to "
+ "unrecognized insn 0x%x"),
+ bfd_get_filename (abfd),
+ (unsigned long) irel->r_offset + no_match,
+ insn[no_match]);
continue;
}
if ( hi_irelfn == irelend
|| lo_irelfn == irelend)
{
- ((*_bfd_error_handler)
- ("%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc",
- bfd_get_filename (abfd), (unsigned long) irel->r_offset ));
-
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%s: 0x%lx: warning: R_V850_LONGJUMP points to "
+ "unrecognized reloc"),
+ bfd_get_filename (abfd), (unsigned long) irel->r_offset);
continue;
}