/* Renesas RL78 specific support for 32-bit ELF.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
#include "sysdep.h"
#include "bfd.h"
-#include "bfd_stdint.h"
#include "libbfd.h"
#include "elf-bfd.h"
#include "elf/rl78.h"
/* Set the howto pointer for an RL78 ELF reloc. */
-static void
-rl78_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED,
+static bfd_boolean
+rl78_info_to_howto_rela (bfd * abfd,
arelent * cache_ptr,
Elf_Internal_Rela * dst)
{
if (r_type >= (unsigned int) R_RL78_max)
{
/* xgettext:c-format */
- _bfd_error_handler (_("%B: invalid RL78 reloc number: %d"), abfd, r_type);
- r_type = 0;
+ _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+ abfd, r_type);
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
}
cache_ptr->howto = rl78_elf_howto_table + r_type;
+ return TRUE;
}
\f
static bfd_vma
if (rl78_stack_top < NUM_STACK_ENTRIES) \
rl78_stack [rl78_stack_top ++] = (val); \
else \
- _bfd_error_handler (_("Internal Error: RL78 reloc stack overflow")); \
+ _bfd_error_handler (_("internal error: RL78 reloc stack overflow")); \
} \
while (0)
(dest) = rl78_stack [-- rl78_stack_top];\
else \
{ \
- _bfd_error_handler (_("Internal Error: RL78 reloc stack underflow")); \
+ _bfd_error_handler (_("internal error: RL78 reloc stack underflow")); \
(dest) = 0; \
} \
} \
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
- name = (sym->st_name == 0) ? bfd_section_name (input_bfd, sec) : name;
+ name = sym->st_name == 0 ? bfd_section_name (sec) : name;
}
else
{
{
relocation = 0;
if (h->root.type != bfd_link_hash_undefweak)
- _bfd_error_handler (_("Warning: RL78_SYM reloc with an unknown symbol"));
+ _bfd_error_handler
+ (_("warning: RL78_SYM reloc with an unknown symbol"));
}
(void) rl78_compute_complex_reloc (r_type, relocation, input_section);
break;
and emit a more helpful error message. */
if (r_type == R_RL78_DIR24S_PCREL)
/* xgettext:c-format */
- msg = _("%B(%A): error: call to undefined function '%s'");
+ msg = _("%pB(%pA): error: call to undefined function '%s'");
else
(*info->callbacks->reloc_overflow)
(info, (h ? &h->root : NULL), name, howto->name, (bfd_vma) 0,
case bfd_reloc_other:
/* xgettext:c-format */
- msg = _("%B(%A): warning: unaligned access to symbol '%s' in the small data area");
+ msg = _("%pB(%pA): warning: unaligned access to symbol '%s' in the small data area");
break;
case bfd_reloc_outofrange:
/* xgettext:c-format */
- msg = _("%B(%A): internal error: out of range error");
+ msg = _("%pB(%pA): internal error: out of range error");
break;
case bfd_reloc_notsupported:
/* xgettext:c-format */
- msg = _("%B(%A): internal error: unsupported relocation error");
+ msg = _("%pB(%pA): internal error: unsupported relocation error");
break;
case bfd_reloc_dangerous:
/* xgettext:c-format */
- msg = _("%B(%A): internal error: dangerous relocation");
+ msg = _("%pB(%pA): internal error: dangerous relocation");
break;
default:
/* xgettext:c-format */
- msg = _("%B(%A): internal error: unknown error");
+ msg = _("%pB(%pA): internal error: unknown error");
break;
}
_bfd_error_handler
/* xgettext:c-format */
- (_("RL78 ABI conflict: G10 file %B cannot be linked"
- " with %s file %B"),
+ (_("RL78 ABI conflict: G10 file %pB cannot be linked"
+ " with %s file %pB"),
ibfd, rl78_cpu_name (out_cpu), obfd);
}
else
_bfd_error_handler
/* xgettext:c-format */
- (_("RL78 ABI conflict: cannot link %s file %B with %s file %B"),
+ (_("RL78 ABI conflict: cannot link %s file %pB with %s file %pB"),
rl78_cpu_name (in_cpu), ibfd,
rl78_cpu_name (out_cpu), obfd);
}
if (old_flags & E_FLAG_RL78_64BIT_DOUBLES)
/* xgettext:c-format */
- _bfd_error_handler (_("- %B is 64-bit, %B is not"),
+ _bfd_error_handler (_("- %pB is 64-bit, %pB is not"),
obfd, ibfd);
else
/* xgettext:c-format */
- _bfd_error_handler (_("- %B is 64-bit, %B is not"),
+ _bfd_error_handler (_("- %pB is 64-bit, %pB is not"),
ibfd, obfd);
error = TRUE;
}
flags);
elf_hash_table (info)->splt = splt;
if (splt == NULL
- || ! bfd_set_section_alignment (dynobj, splt, 1))
+ || !bfd_set_section_alignment (splt, 1))
return FALSE;
}