-{
- "aixcoff64-rs6000",
- bfd_target_xcoff_flavour,
- BFD_ENDIAN_BIG, /* data byte order is big */
- BFD_ENDIAN_BIG, /* header byte order is big */
-
- (HAS_RELOC | EXEC_P | /* object flags */
- HAS_LINENO | HAS_DEBUG | DYNAMIC |
- HAS_SYMS | HAS_LOCALS | WP_TEXT),
-
- (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
- 0, /* leading char */
- '/', /* ar_pad_char */
- 15, /* ar_max_namelen??? FIXMEmgo */
-
- /* data */
- bfd_getb64, /* bfd_getx64 */
- bfd_getb_signed_64, /* bfd_getx_signed_64 */
- bfd_putb64, /* bfd_putx64 */
- bfd_getb32, /* bfd_getx32 */
- bfd_getb_signed_32, /* bfd_getx_signed_32 */
- bfd_putb32, /* bfd_putx32 */
- bfd_getb16, /* bfd_getx16 */
- bfd_getb_signed_16, /* bfd_getx_signed_16 */
- bfd_putb16, /* bfd_putx16 */
-
- /* hdrs */
- bfd_getb64, /* bfd_h_getx64 */
- bfd_getb_signed_64, /* bfd_h_getx_signed_64 */
- bfd_putb64, /* bfd_h_putx64 */
- bfd_getb32, /* bfd_h_getx32 */
- bfd_getb_signed_32, /* bfd_h_getx_signed_32 */
- bfd_putb32, /* bfd_h_putx32 */
- bfd_getb16, /* bfd_h_getx16 */
- bfd_getb_signed_16, /* bfd_h_getx_signed_16 */
- bfd_putb16, /* bfd_h_putx16 */
-
- { /* bfd_check_format */
- _bfd_dummy_target,
- coff_object_p,
- xcoff64_archive_p,
- CORE_FILE_P
- },
-
- { /* bfd_set_format */
- bfd_false,
- coff_mkobject,
- _bfd_generic_mkarchive,
- bfd_false
- },
-
- {/* bfd_write_contents */
- bfd_false,
- xcoff64_write_object_contents,
- _bfd_xcoff_write_archive_contents,
- bfd_false
- },
-
- /* Generic */
- bfd_true, /* _close_and_cleanup */
- bfd_true, /* _bfd_free_cached_info */
- coff_new_section_hook, /* _new_section_hook */
- _bfd_generic_get_section_contents, /* _bfd_get_section_contents */
- /* _bfd_get_section_contents_in_window */
- _bfd_generic_get_section_contents_in_window,
-
- /* Copy */
- _bfd_xcoff_copy_private_bfd_data, /* _bfd_copy_private_bfd */
- /* _bfd_merge_private_bfd_data */
- ((boolean (*) (bfd *, bfd *)) bfd_true),
- /* _bfd_copy_pivate_section_data */
- ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
- /* _bfd_copy_private_symbol_data */
- ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
- ((boolean (*) (bfd *, flagword)) bfd_true), /* _bfd_set_private_flags */
- ((boolean (*) (bfd *, void * )) bfd_true), /* _bfd_print_private_bfd_data */
-
- /* Core */
- coff_core_file_failing_command, /* _core_file_failing_command */
- coff_core_file_failing_signal, /* _core_file_failing_signal */
- /* _core_file_matches_executable_p */
- coff_core_file_matches_executable_p,
-
- /* Archive */
- xcoff64_slurp_armap, /* _slurp_armap */
- /* XCOFF archives do not have
- anything which corresponds to
- an extended name table. */
- bfd_false, /* _slurp_extended_name_table */
- /* _construct_extended_name_table */
- ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
- bfd_dont_truncate_arname, /* _truncate_arname */
- _bfd_xcoff_write_armap, /* _write_armap */
- _bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
- xcoff64_openr_next_archived_file, /* _openr_next_archived_file */
- _bfd_generic_get_elt_at_index, /* _get_elt_at_index */
- _bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
- /* XCOFF archives do not have
- a timestamp. */
- bfd_true, /* _update_armap_timestamp */
-
- /* Symbols */
- coff_get_symtab_upper_bound, /* _get_symtab_upper_bound */
- coff_get_symtab, /* _get_symtab */
- coff_make_empty_symbol, /* _make_empty_symbol */
- coff_print_symbol, /* _print_symbol */
- coff_get_symbol_info, /* _get_symbol_info */
- _bfd_xcoff_is_local_label_name, /* _bfd_is_local_label_name */
- coff_get_lineno, /* _get_lineno */
- coff_find_nearest_line, /* _find_nearest_line */
- coff_bfd_make_debug_symbol, /* _bfd_make_debug_symbol */
- _bfd_generic_read_minisymbols, /* _read_minisymbols */
- _bfd_generic_minisymbol_to_symbol, /* _minsymbol_to_symbol */
-
- /* Reloc */
- coff_get_reloc_upper_bound, /* _get_reloc_upper_bound */
- coff_canonicalize_reloc, /* _cononicalize_reloc */
- xcoff64_reloc_type_lookup, /* _bfd_reloc_type_lookup */
-
- /* Write */
- coff_set_arch_mach, /* _set_arch_mach */
- coff_set_section_contents, /* _set_section_contents */
-
- /* Link */
- xcoff64_sizeof_headers, /* _sizeof_headers */
- /* _bfd_get_relocated_section_contents */
- bfd_generic_get_relocated_section_contents,
- bfd_generic_relax_section, /* _bfd_relax_section */
- _bfd_xcoff_bfd_link_hash_table_create, /* _bfd_link_hash_table_create */
- _bfd_xcoff_bfd_link_add_symbols, /* _bfd_link_add_symbols */
- _bfd_xcoff_bfd_final_link, /* _bfd_filnal_link */
- _bfd_generic_link_split_section, /* _bfd_link_split_section */
- bfd_generic_gc_sections, /* _bfd_gc_sections */
- bfd_generic_merge_sections, /* _bfd_merge_sections */
-
- /* Dynamic */
- /* _get_dynamic_symtab_upper_bound */
- _bfd_xcoff_get_dynamic_symtab_upper_bound,
- _bfd_xcoff_canonicalize_dynamic_symtab, /* _cononicalize_dynamic_symtab */
- _bfd_xcoff_get_dynamic_reloc_upper_bound,/* _get_dynamic_reloc_upper_bound */
- _bfd_xcoff_canonicalize_dynamic_reloc, /* _cononicalize_dynamic_reloc */
-
- /* Opposite endian version, none exists */
- NULL,
-
- /* back end data */
- (void *) &bfd_xcoff_backend_data,
-};
+ {
+ "aixcoff64-rs6000",
+ bfd_target_xcoff_flavour,
+ BFD_ENDIAN_BIG, /* data byte order is big */
+ BFD_ENDIAN_BIG, /* header byte order is big */
+
+ (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC
+ | HAS_SYMS | HAS_LOCALS | WP_TEXT),
+
+ SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA,
+ 0, /* leading char */
+ '/', /* ar_pad_char */
+ 15, /* ar_max_namelen */
+
+ /* 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_getb64,
+ bfd_getb_signed_64,
+ bfd_putb64,
+ bfd_getb32,
+ bfd_getb_signed_32,
+ bfd_putb32,
+ bfd_getb16,
+ bfd_getb_signed_16,
+ bfd_putb16,
+
+ { /* bfd_check_format */
+ _bfd_dummy_target,
+ coff_object_p,
+ xcoff64_archive_p,
+ CORE_FILE_P
+ },
+
+ { /* bfd_set_format */
+ bfd_false,
+ coff_mkobject,
+ _bfd_generic_mkarchive,
+ bfd_false
+ },
+
+ {/* bfd_write_contents */
+ bfd_false,
+ xcoff64_write_object_contents,
+ _bfd_xcoff_write_archive_contents,
+ bfd_false
+ },
+
+ /* Generic */
+ bfd_true,
+ bfd_true,
+ coff_new_section_hook,
+ _bfd_generic_get_section_contents,
+ _bfd_generic_get_section_contents_in_window,
+
+ /* Copy */
+ _bfd_xcoff_copy_private_bfd_data,
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+ _bfd_generic_init_private_section_data,
+ ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
+ ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+ ((bfd_boolean (*) (bfd *, flagword)) bfd_true),
+ ((bfd_boolean (*) (bfd *, void * )) bfd_true),
+
+ /* Core */
+ coff_core_file_failing_command,
+ coff_core_file_failing_signal,
+ coff_core_file_matches_executable_p,
+
+ /* Archive */
+ xcoff64_slurp_armap,
+ bfd_false,
+ ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+ bfd_dont_truncate_arname,
+ _bfd_xcoff_write_armap,
+ _bfd_xcoff_read_ar_hdr,
+ xcoff64_openr_next_archived_file,
+ _bfd_generic_get_elt_at_index,
+ _bfd_xcoff_stat_arch_elt,
+ bfd_true,
+
+ /* Symbols */
+ coff_get_symtab_upper_bound,
+ coff_canonicalize_symtab,
+ coff_make_empty_symbol,
+ coff_print_symbol,
+ coff_get_symbol_info,
+ _bfd_xcoff_is_local_label_name,
+ coff_bfd_is_target_special_symbol,
+ coff_get_lineno,
+ coff_find_nearest_line,
+ _bfd_generic_find_line,
+ coff_find_inliner_info,
+ coff_bfd_make_debug_symbol,
+ _bfd_generic_read_minisymbols,
+ _bfd_generic_minisymbol_to_symbol,
+
+ /* Reloc */
+ coff_get_reloc_upper_bound,
+ coff_canonicalize_reloc,
+ xcoff64_reloc_type_lookup,
+ xcoff64_reloc_name_lookup,
+
+ /* Write */
+ coff_set_arch_mach,
+ coff_set_section_contents,
+
+ /* Link */
+ xcoff64_sizeof_headers,
+ bfd_generic_get_relocated_section_contents,
+ bfd_generic_relax_section,
+ _bfd_xcoff_bfd_link_hash_table_create,
+ _bfd_generic_link_hash_table_free,
+ _bfd_xcoff_bfd_link_add_symbols,
+ _bfd_generic_link_just_syms,
+ _bfd_xcoff_bfd_final_link,
+ _bfd_generic_link_split_section,
+ bfd_generic_gc_sections,
+ bfd_generic_merge_sections,
+ bfd_generic_is_group_section,
+ bfd_generic_discard_group,
+ _bfd_generic_section_already_linked,
+ _bfd_xcoff_define_common_symbol,
+
+ /* Dynamic */
+ _bfd_xcoff_get_dynamic_symtab_upper_bound,
+ _bfd_xcoff_canonicalize_dynamic_symtab,
+ _bfd_nodynamic_get_synthetic_symtab,
+ _bfd_xcoff_get_dynamic_reloc_upper_bound,
+ _bfd_xcoff_canonicalize_dynamic_reloc,
+
+ /* Opposite endian version, none exists */
+ NULL,
+
+ (void *) &bfd_xcoff_backend_data,
+ };
+
+extern const bfd_target *xcoff64_core_p
+ PARAMS ((bfd *));
+extern bfd_boolean xcoff64_core_file_matches_executable_p
+ PARAMS ((bfd *, bfd *));
+extern char *xcoff64_core_file_failing_command
+ PARAMS ((bfd *));
+extern int xcoff64_core_file_failing_signal
+ PARAMS ((bfd *));
+
+/* AIX 5 */
+static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data =
+ {
+ { /* COFF backend, defined in libcoff.h. */
+ _bfd_xcoff64_swap_aux_in,
+ _bfd_xcoff64_swap_sym_in,
+ _bfd_xcoff64_swap_lineno_in,
+ _bfd_xcoff64_swap_aux_out,
+ _bfd_xcoff64_swap_sym_out,
+ _bfd_xcoff64_swap_lineno_out,
+ xcoff64_swap_reloc_out,
+ coff_swap_filehdr_out,
+ coff_swap_aouthdr_out,
+ coff_swap_scnhdr_out,
+ FILHSZ,
+ AOUTSZ,
+ SCNHSZ,
+ SYMESZ,
+ AUXESZ,
+ RELSZ,
+ LINESZ,
+ FILNMLEN,
+ TRUE, /* _bfd_coff_long_filenames */
+ XCOFF_NO_LONG_SECTION_NAMES, /* _bfd_coff_long_section_names */
+ 3, /* _bfd_coff_default_section_alignment_power */
+ TRUE, /* _bfd_coff_force_symnames_in_strings */
+ 4, /* _bfd_coff_debug_string_prefix_length */
+ coff_swap_filehdr_in,
+ coff_swap_aouthdr_in,
+ coff_swap_scnhdr_in,
+ xcoff64_swap_reloc_in,
+ xcoff64_bad_format_hook,
+ coff_set_arch_mach_hook,
+ coff_mkobject_hook,
+ styp_to_sec_flags,
+ coff_set_alignment_hook,
+ coff_slurp_symbol_table,
+ symname_in_debug_hook,
+ coff_pointerize_aux_hook,
+ coff_print_aux,
+ dummy_reloc16_extra_cases,
+ dummy_reloc16_estimate,
+ NULL, /* bfd_coff_sym_is_global */
+ coff_compute_section_file_positions,
+ NULL, /* _bfd_coff_start_final_link */
+ xcoff64_ppc_relocate_section,
+ coff_rtype_to_howto,
+ NULL, /* _bfd_coff_adjust_symndx */
+ _bfd_generic_link_add_one_symbol,
+ coff_link_output_has_begun,
+ coff_final_link_postscript,
+ NULL /* print_pdata. */
+ },
+
+ U64_TOCMAGIC, /* magic number */
+ bfd_arch_powerpc,
+ bfd_mach_ppc_620,
+
+ /* Function pointers to xcoff specific swap routines. */
+ xcoff64_swap_ldhdr_in,
+ xcoff64_swap_ldhdr_out,
+ xcoff64_swap_ldsym_in,
+ xcoff64_swap_ldsym_out,
+ xcoff64_swap_ldrel_in,
+ xcoff64_swap_ldrel_out,
+
+ /* Sizes. */
+ LDHDRSZ,
+ LDSYMSZ,
+ LDRELSZ,
+ 24, /* _xcoff_function_descriptor_size */
+ 0, /* _xcoff_small_aout_header_size */
+ /* Versions. */
+ 2, /* _xcoff_ldhdr_version */
+
+ _bfd_xcoff64_put_symbol_name,
+ _bfd_xcoff64_put_ldsymbol_name,
+ &xcoff64_dynamic_reloc,
+ xcoff64_create_csect_from_smclas,
+
+ /* Lineno and reloc count overflow. */
+ xcoff64_is_lineno_count_overflow,
+ xcoff64_is_reloc_count_overflow,
+
+ xcoff64_loader_symbol_offset,
+ xcoff64_loader_reloc_offset,
+
+ /* glink. */
+ &xcoff64_glink_code[0],
+ 40, /* _xcoff_glink_size */
+
+ /* rtinit. */
+ 88, /* _xcoff_rtinit_size */
+ xcoff64_generate_rtinit,
+ };
+
+/* The transfer vector that leads the outside world to all of the above. */
+const bfd_target aix5coff64_vec =
+ {
+ "aix5coff64-rs6000",
+ bfd_target_xcoff_flavour,
+ BFD_ENDIAN_BIG, /* data byte order is big */
+ BFD_ENDIAN_BIG, /* header byte order is big */
+
+ (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC
+ | HAS_SYMS | HAS_LOCALS | WP_TEXT),
+
+ SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA,
+ 0, /* leading char */
+ '/', /* ar_pad_char */
+ 15, /* ar_max_namelen */
+
+ /* 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_getb64,
+ bfd_getb_signed_64,
+ bfd_putb64,
+ bfd_getb32,
+ bfd_getb_signed_32,
+ bfd_putb32,
+ bfd_getb16,
+ bfd_getb_signed_16,
+ bfd_putb16,
+
+ { /* bfd_check_format */
+ _bfd_dummy_target,
+ coff_object_p,
+ xcoff64_archive_p,
+ xcoff64_core_p
+ },
+
+ { /* bfd_set_format */
+ bfd_false,
+ coff_mkobject,
+ _bfd_generic_mkarchive,
+ bfd_false
+ },
+
+ {/* bfd_write_contents */
+ bfd_false,
+ xcoff64_write_object_contents,
+ _bfd_xcoff_write_archive_contents,
+ bfd_false
+ },
+
+ /* Generic */
+ bfd_true,
+ bfd_true,
+ coff_new_section_hook,
+ _bfd_generic_get_section_contents,
+ _bfd_generic_get_section_contents_in_window,
+
+ /* Copy */
+ _bfd_xcoff_copy_private_bfd_data,
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+ _bfd_generic_init_private_section_data,
+ ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true),
+ ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true),
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+ ((bfd_boolean (*) (bfd *, flagword)) bfd_true),
+ ((bfd_boolean (*) (bfd *, void * )) bfd_true),
+
+ /* Core */
+ xcoff64_core_file_failing_command,
+ xcoff64_core_file_failing_signal,
+ xcoff64_core_file_matches_executable_p,
+
+ /* Archive */
+ xcoff64_slurp_armap,
+ bfd_false,
+ ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+ bfd_dont_truncate_arname,
+ _bfd_xcoff_write_armap,
+ _bfd_xcoff_read_ar_hdr,
+ xcoff64_openr_next_archived_file,
+ _bfd_generic_get_elt_at_index,
+ _bfd_xcoff_stat_arch_elt,
+ bfd_true,
+
+ /* Symbols */
+ coff_get_symtab_upper_bound,
+ coff_canonicalize_symtab,
+ coff_make_empty_symbol,
+ coff_print_symbol,
+ coff_get_symbol_info,
+ _bfd_xcoff_is_local_label_name,
+ coff_bfd_is_target_special_symbol,
+ coff_get_lineno,
+ coff_find_nearest_line,
+ _bfd_generic_find_line,
+ coff_find_inliner_info,
+ coff_bfd_make_debug_symbol,
+ _bfd_generic_read_minisymbols,
+ _bfd_generic_minisymbol_to_symbol,
+
+ /* Reloc */
+ coff_get_reloc_upper_bound,
+ coff_canonicalize_reloc,
+ xcoff64_reloc_type_lookup,
+ xcoff64_reloc_name_lookup,
+
+ /* Write */
+ coff_set_arch_mach,
+ coff_set_section_contents,
+
+ /* Link */
+ xcoff64_sizeof_headers,
+ bfd_generic_get_relocated_section_contents,
+ bfd_generic_relax_section,
+ _bfd_xcoff_bfd_link_hash_table_create,
+ _bfd_generic_link_hash_table_free,
+ _bfd_xcoff_bfd_link_add_symbols,
+ _bfd_generic_link_just_syms,
+ _bfd_xcoff_bfd_final_link,
+ _bfd_generic_link_split_section,
+ bfd_generic_gc_sections,
+ bfd_generic_merge_sections,
+ bfd_generic_is_group_section,
+ bfd_generic_discard_group,
+ _bfd_generic_section_already_linked,
+ _bfd_xcoff_define_common_symbol,
+
+ /* Dynamic */
+ _bfd_xcoff_get_dynamic_symtab_upper_bound,
+ _bfd_xcoff_canonicalize_dynamic_symtab,
+ _bfd_nodynamic_get_synthetic_symtab,
+ _bfd_xcoff_get_dynamic_reloc_upper_bound,
+ _bfd_xcoff_canonicalize_dynamic_reloc,
+
+ /* Opposite endian version, none exists. */
+ NULL,
+
+ (void *) & bfd_xcoff_aix5_backend_data,
+ };