#ifndef TARGET_NAME
#error TARGET_NAME must be defined
#endif
#ifndef TARGET_STRING
#error TARGET_STRING must be defined
#endif
#ifndef TARGET_BIG_ENDIAN
#error TARGET_BIG_ENDIAN must be defined
#endif
#ifndef TARGET_ARCHIVE
#error TARGET_ARCHIVE must be defined
#endif
#if ((TARGET_ARCHIVE) && (! TARGET_BIG_ENDIAN))
#error Mach-O fat files must always be big-endian.
#endif
const bfd_target TARGET_NAME =
{
TARGET_STRING,
bfd_target_mach_o_flavour,
#if TARGET_BIG_ENDIAN
BFD_ENDIAN_BIG,
BFD_ENDIAN_BIG,
#else
BFD_ENDIAN_LITTLE,
BFD_ENDIAN_LITTLE,
#endif
(HAS_RELOC | EXEC_P |
HAS_LINENO | HAS_DEBUG |
HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED),
(SEC_CODE | SEC_DATA | SEC_ROM | SEC_HAS_CONTENTS
| SEC_ALLOC | SEC_LOAD | SEC_RELOC),
'_',
' ',
16,
#if TARGET_BIG_ENDIAN
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
#else
bfd_getl64, bfd_getl_signed_64, bfd_putl64,
bfd_getl32, bfd_getl_signed_32, bfd_putl32,
bfd_getl16, bfd_getl_signed_16, bfd_putl16,
bfd_getl64, bfd_getl_signed_64, bfd_putl64,
bfd_getl32, bfd_getl_signed_32, bfd_putl32,
bfd_getl16, bfd_getl_signed_16, bfd_putl16,
#endif
{
#if TARGET_ARCHIVE
_bfd_dummy_target,
_bfd_dummy_target,
bfd_mach_o_archive_p,
_bfd_dummy_target,
#else
_bfd_dummy_target,
bfd_mach_o_object_p,
bfd_generic_archive_p,
bfd_mach_o_core_p
#endif
},
{
bfd_false,
bfd_mach_o_mkobject,
bfd_false,
bfd_mach_o_mkobject,
},
{
bfd_false,
bfd_mach_o_write_contents,
bfd_false,
bfd_mach_o_write_contents,
},
BFD_JUMP_TABLE_GENERIC (bfd_mach_o),
BFD_JUMP_TABLE_COPY (bfd_mach_o),
BFD_JUMP_TABLE_CORE (bfd_mach_o),
#if TARGET_ARCHIVE
BFD_JUMP_TABLE_ARCHIVE (bfd_mach_o),
#else
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd),
#endif
BFD_JUMP_TABLE_SYMBOLS (bfd_mach_o),
BFD_JUMP_TABLE_RELOCS (bfd_mach_o),
BFD_JUMP_TABLE_WRITE (bfd_mach_o),
BFD_JUMP_TABLE_LINK (bfd_mach_o),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
NULL,
NULL
};