/* BFD backend for CRIS a.out binaries.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2020 Free Software Foundation, Inc.
Contributed by Axis Communications AB.
Written by Hans-Peter Nilsson.
#define TARGET_PAGE_SIZE SEGMENT_SIZE
#define TARGETNAME "a.out-cris"
-/* The definition here seems not used; just provided as a convention. */
-#define DEFAULT_ARCH bfd_arch_cris
-
/* Do not "beautify" the CONCAT* macro args. Traditional C will not
remove whitespace added here, and thus will fail to concatenate
the tokens. */
through SET_ARCH_MACH. The default bfd_default_set_arch_mach will
not call set_sizes. */
-#define MY_set_arch_mach NAME (aout, set_arch_mach)
#define SET_ARCH_MACH(BFD, EXECP) \
- MY_set_arch_mach (BFD, DEFAULT_ARCH, N_MACHTYPE (EXECP))
+ bfd_set_arch_mach (BFD, bfd_arch_cris, N_MACHTYPE (EXECP))
/* These macros describe the binary layout of the reloc information we
use in a file. */
from the abs section, or as a symbol which has an abs value.
check for that here. */
- if (bfd_is_abs_section (bfd_get_section (sym)))
+ if (bfd_is_abs_section (bfd_asymbol_section (sym)))
{
r_extern = 0;
r_index = N_ABS;
}
else if ((sym->flags & BSF_SECTION_SYM) == 0)
{
- if (bfd_is_und_section (bfd_get_section (sym))
+ if (bfd_is_und_section (bfd_asymbol_section (sym))
/* Remember to check for weak symbols; they count as global. */
|| (sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
r_extern = 1;
if (r_type > 2)
{
/* xgettext:c-format */
- _bfd_error_handler (_("%B: Invalid relocation type exported: %d"),
+ _bfd_error_handler (_("%pB: unsupported relocation type exported: %#x"),
abfd, r_type);
bfd_set_error (bfd_error_wrong_format);
cache_ptr->address = (GET_SWORD (abfd, bytes->r_address));
/* Now the fun stuff. */
- r_index = (bytes->r_index[2] << 16)
- | (bytes->r_index[1] << 8)
- | bytes->r_index[0];
+ r_index = (((unsigned int) bytes->r_index[2] << 16)
+ | ((unsigned int) bytes->r_index[1] << 8)
+ | bytes->r_index[0]);
+
r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE));
- r_type = ((bytes->r_type[0]) >> RELOC_EXT_BITS_TYPE_SH_LITTLE)
- & RELOC_EXT_BITS_TYPE_LITTLE;
+
+ r_type = ((bytes->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE)
+ >> RELOC_EXT_BITS_TYPE_SH_LITTLE);
if (r_type > 2)
{
/* xgettext:c-format */
- _bfd_error_handler (_("%B: Invalid relocation type imported: %d"),
+ _bfd_error_handler (_("%pB: unsupported relocation type imported: %#x"),
abfd, r_type);
bfd_set_error (bfd_error_wrong_format);
{
_bfd_error_handler
/* xgettext:c-format */
- (_("%B: Bad relocation record imported: %d"), abfd, r_index);
+ (_("%pB: bad relocation record imported: %d"), abfd, r_index);
bfd_set_error (bfd_error_wrong_format);