/* BFD backend for MIPS BSD (a.out) binaries.
- Copyright (C) 1993-2014 Free Software Foundation, Inc.
+ Copyright (C) 1993-2018 Free Software Foundation, Inc.
Written by Ralph Campbell.
This file is part of BFD, the Binary File Descriptor library.
/* #define ENTRY_CAN_BE_ZERO */
#define N_HEADER_IN_TEXT(x) 1
#define N_TXTADDR(x) \
- (N_MAGIC(x) != ZMAGIC ? (x).a_entry : /* object file or NMAGIC */\
+ (N_MAGIC(x) != ZMAGIC ? (x)->a_entry : /* object file or NMAGIC */\
TEXT_START_ADDR + EXEC_BYTES_SIZE /* no padding */\
)
#define N_DATADDR(x) (N_TXTADDR(x)+N_TXTSIZE(x))
#include "libbfd.h"
#include "libaout.h"
-#define SET_ARCH_MACH(ABFD, EXEC) \
- MY(set_arch_mach) (ABFD, N_MACHTYPE (EXEC)); \
+#define SET_ARCH_MACH(ABFD, EXECP) \
+ MY(set_arch_mach) (ABFD, N_MACHTYPE (EXECP)); \
MY(choose_reloc_size) (ABFD);
static void MY(set_arch_mach) (bfd *, unsigned long);
static void MY(choose_reloc_size) (bfd *);
switch (bfd_get_mach (abfd))
{
case bfd_mach_m68010:
- N_SET_MACHTYPE (*execp, M_68010);
+ N_SET_MACHTYPE (execp, M_68010);
break;
default:
case bfd_mach_m68020:
- N_SET_MACHTYPE (*execp, M_68020);
+ N_SET_MACHTYPE (execp, M_68020);
break;
}
break;
case bfd_arch_sparc:
- N_SET_MACHTYPE (*execp, M_SPARC);
+ N_SET_MACHTYPE (execp, M_SPARC);
break;
case bfd_arch_i386:
- N_SET_MACHTYPE (*execp, M_386);
+ N_SET_MACHTYPE (execp, M_386);
break;
case bfd_arch_mips:
switch (bfd_get_mach (abfd))
{
case bfd_mach_mips4000:
case bfd_mach_mips6000:
- N_SET_MACHTYPE (*execp, M_MIPS2);
+ N_SET_MACHTYPE (execp, M_MIPS2);
break;
default:
- N_SET_MACHTYPE (*execp, M_MIPS1);
+ N_SET_MACHTYPE (execp, M_MIPS1);
break;
}
break;
default:
- N_SET_MACHTYPE (*execp, M_UNKNOWN);
+ N_SET_MACHTYPE (execp, M_UNKNOWN);
}
MY (choose_reloc_size) (abfd);
{MIPS_RELOC_HI16, 16, 2, 16, FALSE, 0, complain_overflow_bitfield, 0,
"HI16", FALSE, 0, 0x0000ffff, FALSE},
{MIPS_RELOC_HI16_S, 16, 2, 16, FALSE, 0, complain_overflow_bitfield,
- mips_fix_hi16_s,
- "HI16_S", FALSE, 0, 0x0000ffff, FALSE},
+ mips_fix_hi16_s,
+ "HI16_S", FALSE, 0, 0x0000ffff, FALSE},
{MIPS_RELOC_LO16, 0, 2, 16, FALSE, 0, complain_overflow_dont, 0,
"LO16", FALSE, 0, 0x0000ffff, FALSE},
};
extern const bfd_target mips_aout_be_vec;
const bfd_target mips_aout_le_vec =
-{
- "a.out-mips-little", /* name */
+ {
+ "a.out-mips-little", /* name */
bfd_target_aout_flavour,
BFD_ENDIAN_LITTLE, /* target byte order (little) */
BFD_ENDIAN_LITTLE, /* target headers byte order (little) */
- (HAS_RELOC | EXEC_P | /* object flags */
- HAS_LINENO | HAS_DEBUG |
- HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
+ (HAS_RELOC | EXEC_P /* object flags */
+ | HAS_LINENO | HAS_DEBUG
+ | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA),
MY_symbol_leading_char,
- ' ', /* ar_pad_char */
+ ' ', /* ar_pad_char */
15, /* ar_max_namelen */
0, /* match priority. */
bfd_getl64, bfd_getl_signed_64, bfd_putl64,
bfd_getl64, bfd_getl_signed_64, bfd_putl64,
bfd_getl32, bfd_getl_signed_32, bfd_putl32,
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */
- {_bfd_dummy_target, MY_object_p, /* bfd_check_format */
- bfd_generic_archive_p, MY_core_file_p},
- {bfd_false, MY_mkobject, /* bfd_set_format */
- _bfd_generic_mkarchive, bfd_false},
- {bfd_false, MY_write_object_contents, /* bfd_write_contents */
- _bfd_write_archive_contents, bfd_false},
+
+ { /* bfd_check_format */
+ _bfd_dummy_target,
+ MY_object_p,
+ bfd_generic_archive_p,
+ MY_core_file_p
+ },
+ { /* bfd_set_format */
+ _bfd_bool_bfd_false_error,
+ MY_mkobject,
+ _bfd_generic_mkarchive,
+ _bfd_bool_bfd_false_error
+ },
+ { /* bfd_write_contents */
+ _bfd_bool_bfd_false_error,
+ MY_write_object_contents,
+ _bfd_write_archive_contents,
+ _bfd_bool_bfd_false_error
+ },
BFD_JUMP_TABLE_GENERIC (MY),
BFD_JUMP_TABLE_COPY (MY),
BFD_JUMP_TABLE_LINK (MY),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
- & mips_aout_be_vec,
+ &mips_aout_be_vec,
MY_backend_data
};
bfd_target_aout_flavour,
BFD_ENDIAN_BIG, /* target byte order (big) */
BFD_ENDIAN_BIG, /* target headers byte order (big) */
- (HAS_RELOC | EXEC_P | /* object flags */
- HAS_LINENO | HAS_DEBUG |
- HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
+ (HAS_RELOC | EXEC_P /* object flags */
+ | HAS_LINENO | HAS_DEBUG
+ | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA),
MY_symbol_leading_char,
- ' ', /* ar_pad_char */
+ ' ', /* ar_pad_char */
15, /* ar_max_namelen */
0, /* match priority. */
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */
- {_bfd_dummy_target, MY_object_p, /* bfd_check_format */
- bfd_generic_archive_p, MY_core_file_p},
- {bfd_false, MY_mkobject, /* bfd_set_format */
- _bfd_generic_mkarchive, bfd_false},
- {bfd_false, MY_write_object_contents, /* bfd_write_contents */
- _bfd_write_archive_contents, bfd_false},
+
+ { /* bfd_check_format */
+ _bfd_dummy_target,
+ MY_object_p,
+ bfd_generic_archive_p,
+ MY_core_file_p
+ },
+ { /* bfd_set_format */
+ _bfd_bool_bfd_false_error,
+ MY_mkobject,
+ _bfd_generic_mkarchive,
+ _bfd_bool_bfd_false_error
+ },
+ { /* bfd_write_contents */
+ _bfd_bool_bfd_false_error,
+ MY_write_object_contents,
+ _bfd_write_archive_contents,
+ _bfd_bool_bfd_false_error
+ },
BFD_JUMP_TABLE_GENERIC (MY),
BFD_JUMP_TABLE_COPY (MY),
BFD_JUMP_TABLE_LINK (MY),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
- & mips_aout_le_vec,
+ &mips_aout_le_vec,
MY_backend_data
};