|
|
|
@ -363,271 +363,21 @@ static const bfd_coff_backend_data ticoff1_swap_table = |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* TI COFF v0, DOS tools (little-endian headers). */ |
|
|
|
const bfd_target tic4x_coff0_vec = |
|
|
|
{ |
|
|
|
"coff0-tic4x", /* Name. */ |
|
|
|
bfd_target_coff_flavour, |
|
|
|
BFD_ENDIAN_LITTLE, /* Data byte order is little. */ |
|
|
|
BFD_ENDIAN_LITTLE, /* Header byte order is little (DOS tools). */ |
|
|
|
|
|
|
|
(HAS_RELOC | EXEC_P | /* Object flags. */ |
|
|
|
HAS_LINENO | HAS_DEBUG | |
|
|
|
HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), |
|
|
|
|
|
|
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ |
|
|
|
'_', /* Leading symbol underscore. */ |
|
|
|
'/', /* ar_pad_char. */ |
|
|
|
15, /* ar_max_namelen. */ |
|
|
|
bfd_getl64, bfd_getl_signed_64, bfd_putl64, |
|
|
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32, |
|
|
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ |
|
|
|
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, coff_object_p, /* bfd_check_format */ |
|
|
|
bfd_generic_archive_p, _bfd_dummy_target}, |
|
|
|
{bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ |
|
|
|
bfd_false}, |
|
|
|
{bfd_false, coff_write_object_contents, /* bfd_write_contents */ |
|
|
|
_bfd_write_archive_contents, bfd_false}, |
|
|
|
|
|
|
|
BFD_JUMP_TABLE_GENERIC (coff), |
|
|
|
BFD_JUMP_TABLE_COPY (coff), |
|
|
|
BFD_JUMP_TABLE_CORE (_bfd_nocore), |
|
|
|
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
|
|
|
BFD_JUMP_TABLE_SYMBOLS (coff), |
|
|
|
BFD_JUMP_TABLE_RELOCS (coff), |
|
|
|
BFD_JUMP_TABLE_WRITE (coff), |
|
|
|
BFD_JUMP_TABLE_LINK (coff), |
|
|
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
|
|
|
NULL, |
|
|
|
|
|
|
|
(PTR)&ticoff0_swap_table |
|
|
|
}; |
|
|
|
CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff0_vec, "coff0-tic4x", HAS_LOAD_PAGE, 0, '_', NULL, (PTR)&ticoff0_swap_table); |
|
|
|
|
|
|
|
/* TI COFF v0, SPARC tools (big-endian headers). */ |
|
|
|
const bfd_target tic4x_coff0_beh_vec = |
|
|
|
{ |
|
|
|
"coff0-beh-tic4x", /* Name. */ |
|
|
|
bfd_target_coff_flavour, |
|
|
|
BFD_ENDIAN_LITTLE, /* Data byte order is little. */ |
|
|
|
BFD_ENDIAN_BIG, /* Header byte order is big. */ |
|
|
|
|
|
|
|
(HAS_RELOC | EXEC_P | /* Object flags. */ |
|
|
|
HAS_LINENO | HAS_DEBUG | |
|
|
|
HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), |
|
|
|
|
|
|
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ |
|
|
|
'_', /* Leading symbol underscore. */ |
|
|
|
'/', /* ar_pad_char */ |
|
|
|
15, /* ar_max_namelen */ |
|
|
|
bfd_getl64, bfd_getl_signed_64, bfd_putl64, |
|
|
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32, |
|
|
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ |
|
|
|
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, coff_object_p, /* bfd_check_format */ |
|
|
|
bfd_generic_archive_p, _bfd_dummy_target}, |
|
|
|
{bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ |
|
|
|
bfd_false}, |
|
|
|
{bfd_false, coff_write_object_contents, /* bfd_write_contents */ |
|
|
|
_bfd_write_archive_contents, bfd_false}, |
|
|
|
|
|
|
|
BFD_JUMP_TABLE_GENERIC (coff), |
|
|
|
BFD_JUMP_TABLE_COPY (coff), |
|
|
|
BFD_JUMP_TABLE_CORE (_bfd_nocore), |
|
|
|
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
|
|
|
BFD_JUMP_TABLE_SYMBOLS (coff), |
|
|
|
BFD_JUMP_TABLE_RELOCS (coff), |
|
|
|
BFD_JUMP_TABLE_WRITE (coff), |
|
|
|
BFD_JUMP_TABLE_LINK (coff), |
|
|
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
|
|
|
|
|
|
|
&tic4x_coff0_vec, |
|
|
|
|
|
|
|
(PTR)&ticoff0_swap_table |
|
|
|
}; |
|
|
|
CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff0_beh_vec, "coff0-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff0_vec, (PTR)&ticoff0_swap_table); |
|
|
|
|
|
|
|
/* TI COFF v1, DOS tools (little-endian headers). */ |
|
|
|
const bfd_target tic4x_coff1_vec = |
|
|
|
{ |
|
|
|
"coff1-tic4x", /* Name. */ |
|
|
|
bfd_target_coff_flavour, |
|
|
|
BFD_ENDIAN_LITTLE, /* Data byte order is little. */ |
|
|
|
BFD_ENDIAN_LITTLE, /* Header byte order is little (DOS tools). */ |
|
|
|
|
|
|
|
(HAS_RELOC | EXEC_P | /* Object flags. */ |
|
|
|
HAS_LINENO | HAS_DEBUG | |
|
|
|
HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), |
|
|
|
|
|
|
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ |
|
|
|
'_', /* Leading symbol underscore. */ |
|
|
|
'/', /* ar_pad_char */ |
|
|
|
15, /* ar_max_namelen */ |
|
|
|
bfd_getl64, bfd_getl_signed_64, bfd_putl64, |
|
|
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32, |
|
|
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ |
|
|
|
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, coff_object_p, /* bfd_check_format */ |
|
|
|
bfd_generic_archive_p, _bfd_dummy_target}, |
|
|
|
{bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ |
|
|
|
bfd_false}, |
|
|
|
{bfd_false, coff_write_object_contents, /* bfd_write_contents */ |
|
|
|
_bfd_write_archive_contents, bfd_false}, |
|
|
|
|
|
|
|
BFD_JUMP_TABLE_GENERIC (coff), |
|
|
|
BFD_JUMP_TABLE_COPY (coff), |
|
|
|
BFD_JUMP_TABLE_CORE (_bfd_nocore), |
|
|
|
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
|
|
|
BFD_JUMP_TABLE_SYMBOLS (coff), |
|
|
|
BFD_JUMP_TABLE_RELOCS (coff), |
|
|
|
BFD_JUMP_TABLE_WRITE (coff), |
|
|
|
BFD_JUMP_TABLE_LINK (coff), |
|
|
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
|
|
|
|
|
|
|
&tic4x_coff0_beh_vec, |
|
|
|
|
|
|
|
(PTR)&ticoff1_swap_table |
|
|
|
}; |
|
|
|
CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff1_vec, "coff1-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff0_beh_vec, (PTR)&ticoff1_swap_table); |
|
|
|
|
|
|
|
/* TI COFF v1, SPARC tools (big-endian headers). */ |
|
|
|
const bfd_target tic4x_coff1_beh_vec = |
|
|
|
{ |
|
|
|
"coff1-beh-tic4x", /* Name. */ |
|
|
|
bfd_target_coff_flavour, |
|
|
|
BFD_ENDIAN_LITTLE, /* Data byte order is little. */ |
|
|
|
BFD_ENDIAN_BIG, /* Header byte order is big. */ |
|
|
|
|
|
|
|
(HAS_RELOC | EXEC_P | /* Object flags. */ |
|
|
|
HAS_LINENO | HAS_DEBUG | |
|
|
|
HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), |
|
|
|
|
|
|
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ |
|
|
|
'_', /* Leading symbol underscore. */ |
|
|
|
'/', /* ar_pad_char */ |
|
|
|
15, /* ar_max_namelen */ |
|
|
|
bfd_getl64, bfd_getl_signed_64, bfd_putl64, |
|
|
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32, |
|
|
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ |
|
|
|
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, coff_object_p, /* bfd_check_format */ |
|
|
|
bfd_generic_archive_p, _bfd_dummy_target}, |
|
|
|
{bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ |
|
|
|
bfd_false}, |
|
|
|
{bfd_false, coff_write_object_contents, /* bfd_write_contents */ |
|
|
|
_bfd_write_archive_contents, bfd_false}, |
|
|
|
|
|
|
|
BFD_JUMP_TABLE_GENERIC (coff), |
|
|
|
BFD_JUMP_TABLE_COPY (coff), |
|
|
|
BFD_JUMP_TABLE_CORE (_bfd_nocore), |
|
|
|
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
|
|
|
BFD_JUMP_TABLE_SYMBOLS (coff), |
|
|
|
BFD_JUMP_TABLE_RELOCS (coff), |
|
|
|
BFD_JUMP_TABLE_WRITE (coff), |
|
|
|
BFD_JUMP_TABLE_LINK (coff), |
|
|
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
|
|
|
|
|
|
|
&tic4x_coff1_vec, |
|
|
|
|
|
|
|
(PTR)&ticoff1_swap_table |
|
|
|
}; |
|
|
|
CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff1_beh_vec, "coff1-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff1_vec, (PTR)&ticoff1_swap_table); |
|
|
|
|
|
|
|
/* TI COFF v2, TI DOS tools output (little-endian headers). */ |
|
|
|
const bfd_target tic4x_coff2_vec = |
|
|
|
{ |
|
|
|
"coff2-tic4x", /* Name. */ |
|
|
|
bfd_target_coff_flavour, |
|
|
|
BFD_ENDIAN_LITTLE, /* Data byte order is little. */ |
|
|
|
BFD_ENDIAN_LITTLE, /* Header byte order is little (DOS tools). */ |
|
|
|
|
|
|
|
(HAS_RELOC | EXEC_P | /* Object flags. */ |
|
|
|
HAS_LINENO | HAS_DEBUG | |
|
|
|
HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), |
|
|
|
|
|
|
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ |
|
|
|
'_', /* Leading symbol underscore. */ |
|
|
|
'/', /* ar_pad_char */ |
|
|
|
15, /* ar_max_namelen */ |
|
|
|
bfd_getl64, bfd_getl_signed_64, bfd_putl64, |
|
|
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32, |
|
|
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ |
|
|
|
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, coff_object_p, /* bfd_check_format */ |
|
|
|
bfd_generic_archive_p, _bfd_dummy_target}, |
|
|
|
{bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ |
|
|
|
bfd_false}, |
|
|
|
{bfd_false, coff_write_object_contents, /* bfd_write_contents */ |
|
|
|
_bfd_write_archive_contents, bfd_false}, |
|
|
|
|
|
|
|
BFD_JUMP_TABLE_GENERIC (coff), |
|
|
|
BFD_JUMP_TABLE_COPY (coff), |
|
|
|
BFD_JUMP_TABLE_CORE (_bfd_nocore), |
|
|
|
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
|
|
|
BFD_JUMP_TABLE_SYMBOLS (coff), |
|
|
|
BFD_JUMP_TABLE_RELOCS (coff), |
|
|
|
BFD_JUMP_TABLE_WRITE (coff), |
|
|
|
BFD_JUMP_TABLE_LINK (coff), |
|
|
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
|
|
|
|
|
|
|
&tic4x_coff1_beh_vec, |
|
|
|
|
|
|
|
COFF_SWAP_TABLE |
|
|
|
}; |
|
|
|
CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff2_vec, "coff2-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff1_beh_vec, COFF_SWAP_TABLE); |
|
|
|
|
|
|
|
/* TI COFF v2, TI SPARC tools output (big-endian headers). */ |
|
|
|
const bfd_target tic4x_coff2_beh_vec = |
|
|
|
{ |
|
|
|
"coff2-beh-tic4x", /* Name. */ |
|
|
|
bfd_target_coff_flavour, |
|
|
|
BFD_ENDIAN_LITTLE, /* Data byte order is little. */ |
|
|
|
BFD_ENDIAN_BIG, /* Header byte order is big. */ |
|
|
|
|
|
|
|
(HAS_RELOC | EXEC_P | /* Object flags. */ |
|
|
|
HAS_LINENO | HAS_DEBUG | |
|
|
|
HAS_SYMS | HAS_LOCALS | WP_TEXT | HAS_LOAD_PAGE ), |
|
|
|
|
|
|
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* Section flags. */ |
|
|
|
'_', /* Leading symbol underscore. */ |
|
|
|
'/', /* ar_pad_char */ |
|
|
|
15, /* ar_max_namelen */ |
|
|
|
bfd_getl64, bfd_getl_signed_64, bfd_putl64, |
|
|
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32, |
|
|
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ |
|
|
|
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, coff_object_p, /* bfd_check_format */ |
|
|
|
bfd_generic_archive_p, _bfd_dummy_target}, |
|
|
|
{bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ |
|
|
|
bfd_false}, |
|
|
|
{bfd_false, coff_write_object_contents, /* bfd_write_contents */ |
|
|
|
_bfd_write_archive_contents, bfd_false}, |
|
|
|
|
|
|
|
BFD_JUMP_TABLE_GENERIC (coff), |
|
|
|
BFD_JUMP_TABLE_COPY (coff), |
|
|
|
BFD_JUMP_TABLE_CORE (_bfd_nocore), |
|
|
|
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
|
|
|
BFD_JUMP_TABLE_SYMBOLS (coff), |
|
|
|
BFD_JUMP_TABLE_RELOCS (coff), |
|
|
|
BFD_JUMP_TABLE_WRITE (coff), |
|
|
|
BFD_JUMP_TABLE_LINK (coff), |
|
|
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
|
|
|
|
|
|
|
&tic4x_coff2_vec, |
|
|
|
|
|
|
|
COFF_SWAP_TABLE |
|
|
|
}; |
|
|
|
CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff2_beh_vec, "coff2-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff2_vec, COFF_SWAP_TABLE); |
|
|
|
|