* coff-rs6000.c: Formatting fixes.

(xcoff_calculate_relocation): Use PARAMS in declaration.
	(xcoff_complain_overflow): Likewise.
	(xcoff_ppc_relocate_section): Use old-style function pointer call.
	(bfd_xcoff_backend_data): Remove useless comments.
	(rs6000coff_vec): Likewise.
	(bfd_pmac_xcoff_backend_data): Likewise.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c: Formatting fixes.
	(xcoff64_calculate_relocation): Use PARAMS in declaration.
	(xcoff64_ppc_relocate_section): Use old-style function pointer call.
	(bfd_xcoff_backend_data): Remove useless comments.
	(rs6000coff64_vec): Likewise.
	(bfd_xcoff_aix5_backend_data): Likewise.
	(aix5coff64_vec): Likewise.
This commit is contained in:
Alan Modra 2002-08-06 05:52:29 +00:00
parent a78eab4eaf
commit cf9ab45bc0
3 changed files with 1663 additions and 1707 deletions

View file

@ -1,3 +1,21 @@
2002-08-06 Alan Modra <amodra@bigpond.net.au>
* coff-rs6000.c: Formatting fixes.
(xcoff_calculate_relocation): Use PARAMS in declaration.
(xcoff_complain_overflow): Likewise.
(xcoff_ppc_relocate_section): Use old-style function pointer call.
(bfd_xcoff_backend_data): Remove useless comments.
(rs6000coff_vec): Likewise.
(bfd_pmac_xcoff_backend_data): Likewise.
(pmac_xcoff_vec): Likewise.
* coff64-rs6000.c: Formatting fixes.
(xcoff64_calculate_relocation): Use PARAMS in declaration.
(xcoff64_ppc_relocate_section): Use old-style function pointer call.
(bfd_xcoff_backend_data): Remove useless comments.
(rs6000coff64_vec): Likewise.
(bfd_xcoff_aix5_backend_data): Likewise.
(aix5coff64_vec): Likewise.
2002-08-06 Alan Modra <amodra@bigpond.net.au>
* coff-rs6000.c (xcoff_howto_table): Revert some of last change to

View file

@ -167,7 +167,7 @@ static boolean xcoff_complain_overflow_unsigned_func
PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS));
boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
(XCOFF_RELOC_FUNCTION_ARGS) =
PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)) =
{
xcoff_reloc_type_pos, /* R_POS (0x00) */
xcoff_reloc_type_neg, /* R_NEG (0x01) */
@ -200,7 +200,7 @@ boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
};
boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW])
(XCOFF_COMPLAIN_FUNCTION_ARGS) =
PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS)) =
{
xcoff_complain_overflow_dont_func,
xcoff_complain_overflow_bitfield_func,
@ -998,8 +998,9 @@ xcoff_rtype2howto (relent, internal)
abort ();
/* Put a meaningful value in addend */
relent->addend = (internal->r_size & 0x80) ? - internal->r_vaddr
: internal->r_vaddr;
relent->addend = (internal->r_size & 0x80
? -internal->r_vaddr
: internal->r_vaddr);
}
reloc_howto_type *
@ -2184,9 +2185,9 @@ xcoff_write_archive_contents_old (abfd)
sprintf (fhdr.memoff, "%ld", (long) nextoff);
memset (&ahdr, 0, sizeof ahdr);
sprintf (ahdr.size, "%ld", (long) (XCOFFARMAG_ELEMENT_SIZE +
count * XCOFFARMAG_ELEMENT_SIZE +
total_namlen));
sprintf (ahdr.size, "%ld", (long) (XCOFFARMAG_ELEMENT_SIZE
+ count * XCOFFARMAG_ELEMENT_SIZE
+ total_namlen));
sprintf (ahdr.prevoff, "%ld", (long) prevoff);
sprintf (ahdr.date, "%d", 0);
sprintf (ahdr.uid, "%d", 0);
@ -2458,9 +2459,9 @@ xcoff_write_archive_contents_big (abfd)
hdr = (struct xcoff_ar_hdr_big *) member_table;
PRINT20 (hdr->size, (XCOFFARMAGBIG_ELEMENT_SIZE +
count * XCOFFARMAGBIG_ELEMENT_SIZE +
total_namlen + (total_namlen & 1)));
PRINT20 (hdr->size, (XCOFFARMAGBIG_ELEMENT_SIZE
+ count * XCOFFARMAGBIG_ELEMENT_SIZE
+ total_namlen + (total_namlen & 1)));
if (makemap && hasobjects)
PRINT20 (hdr->nextoff, nextoff + member_table_size);
else
@ -2823,8 +2824,8 @@ xcoff_reloc_type_rel (input_bfd, input_section, output_bfd, rel, sym, howto,
addend += input_section->vma;
*relocation = val + addend;
*relocation -= (input_section->output_section->vma +
input_section->output_offset);
*relocation -= (input_section->output_section->vma
+ input_section->output_offset);
return true;
}
@ -2866,8 +2867,8 @@ xcoff_reloc_type_toc (input_bfd, input_section, output_bfd, rel, sym, howto,
+ h->toc_section->output_offset);
}
*relocation = ((val - xcoff_data (output_bfd)->toc) -
(sym->n_value - xcoff_data (input_bfd)->toc));
*relocation = ((val - xcoff_data (output_bfd)->toc)
- (sym->n_value - xcoff_data (input_bfd)->toc));
return true;
}
@ -2923,8 +2924,8 @@ xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
cror. */
if (NULL != h
&& bfd_link_hash_defined == h->root.type
&& (rel->r_vaddr - input_section->vma + 8 <=
input_section->_cooked_size))
&& (rel->r_vaddr - input_section->vma + 8
<= input_section->_cooked_size))
{
bfd_byte *pnext;
unsigned long next;
@ -2941,7 +2942,8 @@ xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
|| next == 0x60000000) /* ori r0,r0,0 */
bfd_put_32 (input_bfd, 0x80410014, pnext); /* lwz r1,20(r1) */
} else
}
else
{
if (next == 0x80410014) /* lwz r1,20(r1) */
bfd_put_32 (input_bfd, 0x60000000, pnext); /* ori r0,r0,0 */
@ -2967,8 +2969,8 @@ xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
addend += input_section->vma;
*relocation = val + addend;
*relocation -= (input_section->output_section->vma +
input_section->output_offset);
*relocation -= (input_section->output_section->vma
+ input_section->output_offset);
return true;
}
@ -2994,8 +2996,8 @@ xcoff_reloc_type_crel (input_bfd, input_section, output_bfd, rel, sym, howto,
addend += input_section->vma;
*relocation = val + addend;
*relocation -= (input_section->output_section->vma +
input_section->output_offset);
*relocation -= (input_section->output_section->vma
+ input_section->output_offset);
return true;
}
@ -3343,8 +3345,9 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
howto.size = howto.bitsize > 16 ? 2 : 1;
howto.pc_relative = false;
howto.bitpos = 0;
howto.complain_on_overflow = rel->r_size & 0x80 ?
complain_overflow_signed : complain_overflow_bitfield;
howto.complain_on_overflow = (rel->r_size & 0x80
? complain_overflow_signed
: complain_overflow_bitfield);
howto.special_function = NULL;
howto.name = "internal";
howto.partial_inplace = true;
@ -3413,7 +3416,7 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
}
if (rel->r_type >= XCOFF_MAX_CALCULATE_RELOCATION
|| (false == xcoff_calculate_relocation[rel->r_type]
|| !((*xcoff_calculate_relocation[rel->r_type])
(input_bfd, input_section, output_bfd, rel, sym, &howto, val,
addend, &relocation, contents)))
return false;
@ -3438,11 +3441,11 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
operation, which would be tedious, or we must do the computations
in a type larger than bfd_vma, which would be inefficient. */
if ((unsigned int) howto.complain_on_overflow >=
XCOFF_MAX_COMPLAIN_OVERFLOW)
if ((unsigned int) howto.complain_on_overflow
>= XCOFF_MAX_COMPLAIN_OVERFLOW)
abort ();
if ((true == xcoff_complain_overflow[howto.complain_on_overflow]
if (((*xcoff_complain_overflow[howto.complain_on_overflow])
(input_bfd, value_to_relocate, relocation, &howto)))
{
const char *name;
@ -3472,9 +3475,9 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
}
/* Add RELOCATION to the right bits of VALUE_TO_RELOCATE. */
value_to_relocate = ((value_to_relocate & ~howto.dst_mask) |
(((value_to_relocate & howto.src_mask) +
relocation) & howto.dst_mask));
value_to_relocate = ((value_to_relocate & ~howto.dst_mask)
| (((value_to_relocate & howto.src_mask)
+ relocation) & howto.dst_mask));
/* Put the value back in the object file. */
if (1 == howto.size)
@ -3576,8 +3579,8 @@ xcoff_create_csect_from_smclas (abfd, aux, symbol_name)
".td", NULL, ".sv3264"
};
if ((19 >= aux->x_csect.x_smclas) &&
(NULL != names[aux->x_csect.x_smclas]))
if ((19 >= aux->x_csect.x_smclas)
&& (NULL != names[aux->x_csect.x_smclas]))
{
return_value = bfd_make_section_anyway
(abfd, names[aux->x_csect.x_smclas]);
@ -3628,8 +3631,7 @@ xcoff_loader_reloc_offset (abfd, ldhdr)
bfd *abfd;
struct internal_ldhdr *ldhdr;
{
return bfd_xcoff_ldhdrsz(abfd) +
(ldhdr->l_nsyms * bfd_xcoff_ldsymsz(abfd));
return bfd_xcoff_ldhdrsz (abfd) + ldhdr->l_nsyms * bfd_xcoff_ldsymsz (abfd);
}
static boolean
@ -3953,81 +3955,81 @@ static unsigned long xcoff_glink_code[9] =
static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
{
{ /* COFF backend, defined in libcoff.h. */
_bfd_xcoff_swap_aux_in, /* _bfd_coff_swap_aux_in */
_bfd_xcoff_swap_sym_in, /* _bfd_coff_swap_sym_in */
coff_swap_lineno_in, /* _bfd_coff_swap_lineno_in */
_bfd_xcoff_swap_aux_out, /* _bfd_swap_aux_out */
_bfd_xcoff_swap_sym_out, /* _bfd_swap_sym_out */
coff_swap_lineno_out, /* _bfd_swap_lineno_out */
xcoff_swap_reloc_out, /* _bfd_swap_reloc_out */
coff_swap_filehdr_out, /* _bfd_swap_filehdr_out */
coff_swap_aouthdr_out, /* _bfd_swap_aouthdr_out */
coff_swap_scnhdr_out, /* _bfd_swap_scnhdr_out */
FILHSZ, /* _bfd_filhsz */
AOUTSZ, /* _bfd_aoutsz */
SCNHSZ, /* _bfd_scnhsz */
SYMESZ, /* _bfd_symesz */
AUXESZ, /* _bfd_auxesz */
RELSZ, /* _bfd_relsz */
LINESZ, /* _bfd_linesz */
FILNMLEN, /* _bfd_filnmlen */
_bfd_xcoff_swap_aux_in,
_bfd_xcoff_swap_sym_in,
coff_swap_lineno_in,
_bfd_xcoff_swap_aux_out,
_bfd_xcoff_swap_sym_out,
coff_swap_lineno_out,
xcoff_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 */
false, /* _bfd_coff_long_section_names */
(3), /* _bfd_coff_default_section_alignment_power */
3, /* _bfd_coff_default_section_alignment_power */
false, /* _bfd_coff_force_symnames_in_strings */
2, /* _bfd_coff_debug_string_prefix_length */
coff_swap_filehdr_in, /* _bfd_coff_swap_filehdr_in */
coff_swap_aouthdr_in, /* _bfd_swap_aouthdr_in */
coff_swap_scnhdr_in, /* _bfd_swap_scnhdr_in */
xcoff_swap_reloc_in, /* _bfd_reloc_in */
coff_bad_format_hook, /* _bfd_bad_format_hook */
coff_set_arch_mach_hook, /* _bfd_set_arch_mach_hook */
coff_mkobject_hook, /* _bfd_mkobject_hook */
styp_to_sec_flags, /* _bfd_syp_to_sec_flags */
coff_set_alignment_hook, /* _bfd_set_alignment_hook */
coff_slurp_symbol_table, /* _bfd_coff_slurp_symbol_table */
symname_in_debug_hook, /* _coff_symname_in_debug_hook */
coff_pointerize_aux_hook, /* _bfd_coff_pointerize_aux_hook */
coff_print_aux, /* bfd_coff_print_aux */
dummy_reloc16_extra_cases, /* _bfd_coff_reloc16_extra_cases */
dummy_reloc16_estimate, /* _bfd_coff_reloc16_estimate */
coff_swap_filehdr_in,
coff_swap_aouthdr_in,
coff_swap_scnhdr_in,
xcoff_swap_reloc_in,
coff_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, /* _bfd_coff_compute_section_file_positions */
coff_compute_section_file_positions,
NULL, /* _bfd_coff_start_final_link */
xcoff_ppc_relocate_section, /* _bfd_coff_relocate_section */
coff_rtype_to_howto, /* _bfd_coff_rtype_to_howto */
NULL, /* _bfd_coff_addust_symndx */
_bfd_generic_link_add_one_symbol, /* _bfd_coff_add_one_symbol */
coff_link_output_has_begun, /* _bfd_coff_link_output_has_begun */
coff_final_link_postscript /* _bfd_coff_final_link_postscript */
xcoff_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
},
0x01DF, /* magic number */
bfd_arch_rs6000, /* architecture */
bfd_mach_rs6k, /* machine */
bfd_arch_rs6000,
bfd_mach_rs6k,
/* Function pointers to xcoff specific swap routines. */
xcoff_swap_ldhdr_in, /* _xcoff_swap_ldhdr_in */
xcoff_swap_ldhdr_out, /* _xcoff_swap_ldhdr_out */
xcoff_swap_ldsym_in, /* _xcoff_swap_ldsym_in */
xcoff_swap_ldsym_out, /* _xcoff_swap_ldsym_out */
xcoff_swap_ldrel_in, /* _xcoff_swap_ldrel_in */
xcoff_swap_ldrel_out, /* _xcoff_swap_ldrel_out */
xcoff_swap_ldhdr_in,
xcoff_swap_ldhdr_out,
xcoff_swap_ldsym_in,
xcoff_swap_ldsym_out,
xcoff_swap_ldrel_in,
xcoff_swap_ldrel_out,
/* Sizes. */
LDHDRSZ, /* _xcoff_ldhdrsz */
LDSYMSZ, /* _xcoff_ldsymsz */
LDRELSZ, /* _xcoff_ldrelsz */
LDHDRSZ,
LDSYMSZ,
LDRELSZ,
12, /* _xcoff_function_descriptor_size */
SMALL_AOUTSZ, /* _xcoff_small_aout_header_size */
SMALL_AOUTSZ,
/* Versions. */
1, /* _xcoff_ldhdr_version */
_bfd_xcoff_put_symbol_name, /* _xcoff_put_symbol_name */
_bfd_xcoff_put_ldsymbol_name, /* _xcoff_put_ldsymbol_name */
& xcoff_dynamic_reloc, /* dynamic reloc howto */
xcoff_create_csect_from_smclas, /* _xcoff_create_csect_from_smclas */
_bfd_xcoff_put_symbol_name,
_bfd_xcoff_put_ldsymbol_name,
&xcoff_dynamic_reloc,
xcoff_create_csect_from_smclas,
/* Lineno and reloc count overflow. */
xcoff_is_lineno_count_overflow,
@ -4038,11 +4040,11 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
/* glink. */
&xcoff_glink_code[0],
(36), /* _xcoff_glink_size */
36, /* _xcoff_glink_size */
/* rtinit */
64, /* _xcoff_rtinit_size */
xcoff_generate_rtinit, /* _xcoff_generate_rtinit */
xcoff_generate_rtinit,
};
/* The transfer vector that leads the outside world to all of the above. */
@ -4053,36 +4055,35 @@ const bfd_target rs6000coff_vec =
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),
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC
| HAS_SYMS | HAS_LOCALS | WP_TEXT),
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC),
0, /* leading char */
'/', /* ar_pad_char */
15, /* ar_max_namelen??? FIXMEmgo */
15, /* ar_max_namelen */
/* 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 */
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_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_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,
@ -4106,206 +4107,186 @@ const bfd_target rs6000coff_vec =
},
/* 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_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_copy_private_bfd */
/* _bfd_merge_private_bfd_data */
_bfd_xcoff_copy_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 */
((boolean (*) (bfd *, flagword)) bfd_true),
((boolean (*) (bfd *, void * )) bfd_true),
/* 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_failing_command,
coff_core_file_failing_signal,
coff_core_file_matches_executable_p,
/* Archive */
_bfd_xcoff_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 */
_bfd_xcoff_slurp_armap,
bfd_false,
((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 */
_bfd_xcoff_openr_next_archived_file, /* _openr_next_archived_file */
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
_bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
/* XCOFF archives do not have
a timestamp. */
bfd_true, /* _update_armap_timestamp */
bfd_dont_truncate_arname,
_bfd_xcoff_write_armap,
_bfd_xcoff_read_ar_hdr,
_bfd_xcoff_openr_next_archived_file,
_bfd_generic_get_elt_at_index,
_bfd_xcoff_stat_arch_elt,
bfd_true,
/* 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 */
coff_get_symtab_upper_bound,
coff_get_symtab,
coff_make_empty_symbol,
coff_print_symbol,
coff_get_symbol_info,
_bfd_xcoff_is_local_label_name,
coff_get_lineno,
coff_find_nearest_line,
coff_bfd_make_debug_symbol,
_bfd_generic_read_minisymbols,
_bfd_generic_minisymbol_to_symbol,
/* Reloc */
coff_get_reloc_upper_bound, /* _get_reloc_upper_bound */
coff_canonicalize_reloc, /* _cononicalize_reloc */
_bfd_xcoff_reloc_type_lookup, /* _bfd_reloc_type_lookup */
coff_get_reloc_upper_bound,
coff_canonicalize_reloc,
_bfd_xcoff_reloc_type_lookup,
/* Write */
coff_set_arch_mach, /* _set_arch_mach */
coff_set_section_contents, /* _set_section_contents */
coff_set_arch_mach,
coff_set_section_contents,
/* Link */
_bfd_xcoff_sizeof_headers, /* _sizeof_headers */
/* _bfd_get_relocated_section_contents */
_bfd_xcoff_sizeof_headers,
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_generic_link_hash_table_free, /* _bfd_link_hash_table_free */
_bfd_xcoff_bfd_link_add_symbols, /* _bfd_link_add_symbols */
_bfd_generic_link_just_syms, /* _bfd_link_just_syms */
_bfd_xcoff_bfd_final_link, /* _bfd_final_link */
_bfd_generic_link_split_section, /* _bfd_link_split_section */
bfd_generic_gc_sections, /* _bfd_gc_sections */
bfd_generic_merge_sections, /* _bfd_merge_sections */
bfd_generic_discard_group, /* _bfd_discard_group */
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_discard_group,
/* 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 */
_bfd_xcoff_canonicalize_dynamic_symtab,
_bfd_xcoff_get_dynamic_reloc_upper_bound,
_bfd_xcoff_canonicalize_dynamic_reloc,
/* Opposite endian version, none exists */
NULL,
/* back end data */
(void *) &bfd_xcoff_backend_data,
};
/*
* xcoff-powermac target
* Old target.
* Only difference between this target and the rs6000 target is the
* the default architecture and machine type used in coffcode.h
*
* PowerPC Macs use the same magic numbers as RS/6000
* (because that's how they were bootstrapped originally),
* but they are always PowerPC architecture.
*/
/* xcoff-powermac target
Old target.
Only difference between this target and the rs6000 target is the
the default architecture and machine type used in coffcode.h
PowerPC Macs use the same magic numbers as RS/6000
(because that's how they were bootstrapped originally),
but they are always PowerPC architecture. */
static const struct xcoff_backend_data_rec bfd_pmac_xcoff_backend_data =
{
{ /* COFF backend, defined in libcoff.h */
_bfd_xcoff_swap_aux_in, /* _bfd_coff_swap_aux_in */
_bfd_xcoff_swap_sym_in, /* _bfd_coff_swap_sym_in */
coff_swap_lineno_in, /* _bfd_coff_swap_lineno_in */
_bfd_xcoff_swap_aux_out, /* _bfd_swap_aux_out */
_bfd_xcoff_swap_sym_out, /* _bfd_swap_sym_out */
coff_swap_lineno_out, /* _bfd_swap_lineno_out */
xcoff_swap_reloc_out, /* _bfd_swap_reloc_out */
coff_swap_filehdr_out, /* _bfd_swap_filehdr_out */
coff_swap_aouthdr_out, /* _bfd_swap_aouthdr_out */
coff_swap_scnhdr_out, /* _bfd_swap_scnhdr_out */
FILHSZ, /* _bfd_filhsz */
AOUTSZ, /* _bfd_aoutsz */
SCNHSZ, /* _bfd_scnhsz */
SYMESZ, /* _bfd_symesz */
AUXESZ, /* _bfd_auxesz */
RELSZ, /* _bfd_relsz */
LINESZ, /* _bfd_linesz */
FILNMLEN, /* _bfd_filnmlen */
{ /* COFF backend, defined in libcoff.h. */
_bfd_xcoff_swap_aux_in,
_bfd_xcoff_swap_sym_in,
coff_swap_lineno_in,
_bfd_xcoff_swap_aux_out,
_bfd_xcoff_swap_sym_out,
coff_swap_lineno_out,
xcoff_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 */
false, /* _bfd_coff_long_section_names */
(3), /* _bfd_coff_default_section_alignment_power */
3, /* _bfd_coff_default_section_alignment_power */
false, /* _bfd_coff_force_symnames_in_strings */
2, /* _bfd_coff_debug_string_prefix_length */
coff_swap_filehdr_in, /* _bfd_coff_swap_filehdr_in */
coff_swap_aouthdr_in, /* _bfd_swap_aouthdr_in */
coff_swap_scnhdr_in, /* _bfd_swap_scnhdr_in */
xcoff_swap_reloc_in, /* _bfd_reloc_in */
coff_bad_format_hook, /* _bfd_bad_format_hook */
coff_set_arch_mach_hook, /* _bfd_set_arch_mach_hook */
coff_mkobject_hook, /* _bfd_mkobject_hook */
styp_to_sec_flags, /* _bfd_syp_to_sec_flags */
coff_set_alignment_hook, /* _bfd_set_alignment_hook */
coff_slurp_symbol_table, /* _bfd_coff_slurp_symbol_table */
symname_in_debug_hook, /* _coff_symname_in_debug_hook */
coff_pointerize_aux_hook, /* _bfd_coff_pointerize_aux_hook */
coff_print_aux, /* bfd_coff_print_aux */
dummy_reloc16_extra_cases, /* _bfd_coff_reloc16_extra_cases */
dummy_reloc16_estimate, /* _bfd_coff_reloc16_estimate */
coff_swap_filehdr_in,
coff_swap_aouthdr_in,
coff_swap_scnhdr_in,
xcoff_swap_reloc_in,
coff_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 */
/* _bfd_coff_compute_section_file_positions */
coff_compute_section_file_positions,
NULL, /* _bfd_coff_start_final_link */
xcoff_ppc_relocate_section, /* _bfd_coff_relocate_section */
coff_rtype_to_howto, /* _bfd_coff_rtype_to_howto */
NULL, /* _bfd_coff_addust_symndx */
_bfd_generic_link_add_one_symbol, /* _bfd_coff_add_one_symbol */
coff_link_output_has_begun, /* _bfd_coff_link_output_has_begun */
coff_final_link_postscript /* _bfd_coff_final_link_postscript */
xcoff_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
},
0x01DF, /* magic number */
bfd_arch_powerpc, /* architecture */
bfd_mach_ppc, /* machine */
bfd_arch_powerpc,
bfd_mach_ppc,
/* function pointers to xcoff specific swap routines */
xcoff_swap_ldhdr_in, /* _xcoff_swap_ldhdr_in */
xcoff_swap_ldhdr_out, /* _xcoff_swap_ldhdr_out */
xcoff_swap_ldsym_in, /* _xcoff_swap_ldsym_in */
xcoff_swap_ldsym_out, /* _xcoff_swap_ldsym_out */
xcoff_swap_ldrel_in, /* _xcoff_swap_ldrel_in */
xcoff_swap_ldrel_out, /* _xcoff_swap_ldrel_out */
/* Function pointers to xcoff specific swap routines. */
xcoff_swap_ldhdr_in,
xcoff_swap_ldhdr_out,
xcoff_swap_ldsym_in,
xcoff_swap_ldsym_out,
xcoff_swap_ldrel_in,
xcoff_swap_ldrel_out,
/* sizes */
LDHDRSZ, /* _xcoff_ldhdrsz */
LDSYMSZ, /* _xcoff_ldsymsz */
LDRELSZ, /* _xcoff_ldrelsz */
/* Sizes. */
LDHDRSZ,
LDSYMSZ,
LDRELSZ,
12, /* _xcoff_function_descriptor_size */
SMALL_AOUTSZ, /* _xcoff_small_aout_header_size */
SMALL_AOUTSZ,
/* versions */
/* Versions. */
1, /* _xcoff_ldhdr_version */
/* xcoff vs xcoff64 putting symbol names */
_bfd_xcoff_put_symbol_name, /* _xcoff_put_symbol_name */
_bfd_xcoff_put_ldsymbol_name, /* _xcoff_put_ldsymbol_name */
_bfd_xcoff_put_symbol_name,
_bfd_xcoff_put_ldsymbol_name,
&xcoff_dynamic_reloc,
xcoff_create_csect_from_smclas,
&xcoff_dynamic_reloc, /* dynamic reloc howto */
xcoff_create_csect_from_smclas, /* _xcoff_create_csect_from_smclas */
/* lineno and reloc count overflow */
/* Lineno and reloc count overflow. */
xcoff_is_lineno_count_overflow,
xcoff_is_reloc_count_overflow,
xcoff_loader_symbol_offset,
xcoff_loader_reloc_offset,
/* glink */
/* glink. */
&xcoff_glink_code[0],
(36), /* _xcoff_glink_size */
36, /* _xcoff_glink_size */
/* rtinit */
0, /* _xcoff_rtinit_size */
xcoff_generate_rtinit, /* _xcoff_generate_rtinit */
xcoff_generate_rtinit,
};
/* The transfer vector that leads the outside world to all of the above. */
@ -4316,36 +4297,35 @@ const bfd_target pmac_xcoff_vec =
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),
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC
| HAS_SYMS | HAS_LOCALS | WP_TEXT),
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC),
0, /* leading char */
'/', /* ar_pad_char */
15, /* ar_max_namelen??? FIXMEmgo */
15, /* ar_max_namelen */
/* 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 */
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_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_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,
@ -4369,95 +4349,81 @@ const bfd_target pmac_xcoff_vec =
},
/* 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_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_copy_private_bfd */
/* _bfd_merge_private_bfd_data */
_bfd_xcoff_copy_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 */
((boolean (*) (bfd *, flagword)) bfd_true),
((boolean (*) (bfd *, void * )) bfd_true),
/* 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_failing_command,
coff_core_file_failing_signal,
coff_core_file_matches_executable_p,
/* Archive */
_bfd_xcoff_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 */
_bfd_xcoff_slurp_armap,
bfd_false,
((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 */
_bfd_xcoff_openr_next_archived_file, /* _openr_next_archived_file */
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
_bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
/* XCOFF archives do not have
a timestamp. */
bfd_true, /* _update_armap_timestamp */
bfd_dont_truncate_arname,
_bfd_xcoff_write_armap,
_bfd_xcoff_read_ar_hdr,
_bfd_xcoff_openr_next_archived_file,
_bfd_generic_get_elt_at_index,
_bfd_xcoff_stat_arch_elt,
bfd_true,
/* 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 */
coff_get_symtab_upper_bound,
coff_get_symtab,
coff_make_empty_symbol,
coff_print_symbol,
coff_get_symbol_info,
_bfd_xcoff_is_local_label_name,
coff_get_lineno,
coff_find_nearest_line,
coff_bfd_make_debug_symbol,
_bfd_generic_read_minisymbols,
_bfd_generic_minisymbol_to_symbol,
/* Reloc */
coff_get_reloc_upper_bound, /* _get_reloc_upper_bound */
coff_canonicalize_reloc, /* _cononicalize_reloc */
_bfd_xcoff_reloc_type_lookup, /* _bfd_reloc_type_lookup */
coff_get_reloc_upper_bound,
coff_canonicalize_reloc,
_bfd_xcoff_reloc_type_lookup,
/* Write */
coff_set_arch_mach, /* _set_arch_mach */
coff_set_section_contents, /* _set_section_contents */
coff_set_arch_mach,
coff_set_section_contents,
/* Link */
_bfd_xcoff_sizeof_headers, /* _sizeof_headers */
/* _bfd_get_relocated_section_contents */
_bfd_xcoff_sizeof_headers,
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_generic_link_hash_table_free, /* _bfd_link_hash_table_free */
_bfd_xcoff_bfd_link_add_symbols, /* _bfd_link_add_symbols */
_bfd_generic_link_just_syms, /* _bfd_link_just_syms */
_bfd_xcoff_bfd_final_link, /* _bfd_final_link */
_bfd_generic_link_split_section, /* _bfd_link_split_section */
bfd_generic_gc_sections, /* _bfd_gc_sections */
bfd_generic_merge_sections, /* _bfd_merge_sections */
bfd_generic_discard_group, /* _bfd_discard_group */
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_discard_group,
/* 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 */
_bfd_xcoff_canonicalize_dynamic_symtab,
_bfd_xcoff_get_dynamic_reloc_upper_bound,
_bfd_xcoff_canonicalize_dynamic_reloc,
/* Opposite endian version, none exists */
NULL,
/* back end data */
(void *) &bfd_pmac_xcoff_backend_data,
};

View file

@ -156,7 +156,7 @@ static boolean xcoff64_bad_format_hook PARAMS ((bfd *, PTR ));
static boolean xcoff64_reloc_type_br PARAMS ((XCOFF_RELOC_FUNCTION_ARGS));
boolean (*xcoff64_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION])
(XCOFF_RELOC_FUNCTION_ARGS) =
PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)) =
{
xcoff_reloc_type_pos, /* R_POS (0x00) */
xcoff_reloc_type_neg, /* R_NEG (0x01) */
@ -886,9 +886,11 @@ xcoff64_write_object_contents (abfd)
memset (&internal_a, 0, sizeof internal_a);
internal_f.f_magic = bfd_xcoff_magic_number (abfd);
internal_a.magic = (abfd->flags & D_PAGED) ? RS6K_AOUTHDR_ZMAGIC :
(abfd->flags & WP_TEXT) ? RS6K_AOUTHDR_NMAGIC :
RS6K_AOUTHDR_OMAGIC;
internal_a.magic = (abfd->flags & D_PAGED
? RS6K_AOUTHDR_ZMAGIC
: (abfd->flags & WP_TEXT
? RS6K_AOUTHDR_NMAGIC
: RS6K_AOUTHDR_OMAGIC));
/* FIXME: Does anybody ever set this to another value? */
internal_a.vstamp = 0;
@ -1096,8 +1098,8 @@ xcoff64_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
cror. */
if (NULL != h
&& bfd_link_hash_defined == h->root.type
&& (rel->r_vaddr - input_section->vma + 8 <=
input_section->_cooked_size))
&& (rel->r_vaddr - input_section->vma + 8
<= input_section->_cooked_size))
{
bfd_byte *pnext;
unsigned long next;
@ -1139,8 +1141,8 @@ xcoff64_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto,
addend += input_section->vma;
*relocation = val + addend;
*relocation -= (input_section->output_section->vma +
input_section->output_offset);
*relocation -= (input_section->output_section->vma
+ input_section->output_offset);
return true;
}
@ -1191,8 +1193,9 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
howto.size = howto.bitsize > 16 ? (howto.bitsize > 32 ? 4 : 2) : 1;
howto.pc_relative = false;
howto.bitpos = 0;
howto.complain_on_overflow = rel->r_size & 0x80 ?
complain_overflow_signed : complain_overflow_bitfield;
howto.complain_on_overflow = (rel->r_size & 0x80
? complain_overflow_signed
: complain_overflow_bitfield);
howto.special_function = NULL;
howto.name = "internal";
howto.partial_inplace = true;
@ -1260,7 +1263,7 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
}
if (rel->r_type >= XCOFF_MAX_CALCULATE_RELOCATION
|| (false == xcoff64_calculate_relocation[rel->r_type]
|| ((*xcoff64_calculate_relocation[rel->r_type])
(input_bfd, input_section, output_bfd, rel, sym, &howto, val,
addend, &relocation, contents)))
return false;
@ -1287,11 +1290,11 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
operation, which would be tedious, or we must do the computations
in a type larger than bfd_vma, which would be inefficient. */
if ((unsigned int) howto.complain_on_overflow >=
XCOFF_MAX_COMPLAIN_OVERFLOW)
if ((unsigned int) howto.complain_on_overflow
>= XCOFF_MAX_COMPLAIN_OVERFLOW)
abort ();
if ((true == xcoff_complain_overflow[howto.complain_on_overflow]
if (((*xcoff_complain_overflow[howto.complain_on_overflow])
(input_bfd, value_to_relocate, relocation, &howto)))
{
const char *name;
@ -1321,9 +1324,9 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
}
/* Add RELOCATION to the right bits of VALUE_TO_RELOCATE. */
value_to_relocate = ((value_to_relocate & ~howto.dst_mask) |
(((value_to_relocate & howto.src_mask) +
relocation) & howto.dst_mask));
value_to_relocate = ((value_to_relocate & ~howto.dst_mask)
| (((value_to_relocate & howto.src_mask)
+ relocation) & howto.dst_mask));
/* Put the value back in the object file. */
if (1 == howto.size)
@ -1787,8 +1790,9 @@ xcoff64_rtype2howto (relent, internal)
abort ();
/* Put a meaningful value in addend */
relent->addend = (internal->r_size & 0x80) ? - internal->r_vaddr
: internal->r_vaddr;
relent->addend = (internal->r_size & 0x80
? -internal->r_vaddr
: internal->r_vaddr);
}
reloc_howto_type *
@ -2287,7 +2291,7 @@ xcoff64_generate_rtinit (abfd, init, fini, rtld)
string_table_size += strlen (rtinit_name) + 1;
string_table_size += initsz;
string_table_size += finisz;
if (true == rtld)
if (rtld)
string_table_size += strlen (rtld_name) + 1;
string_table = (bfd_byte *) bfd_zmalloc (string_table_size);
@ -2493,85 +2497,80 @@ static unsigned long xcoff64_glink_code[10] =
static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
{
{ /* COFF backend, defined in libcoff.h. */
_bfd_xcoff64_swap_aux_in, /* _bfd_coff_swap_aux_in */
_bfd_xcoff64_swap_sym_in, /* _bfd_coff_swap_sym_in */
_bfd_xcoff64_swap_lineno_in, /* _bfd_coff_swap_lineno_in */
_bfd_xcoff64_swap_aux_out, /* _bfd_swap_aux_out */
_bfd_xcoff64_swap_sym_out, /* _bfd_swap_sym_out */
_bfd_xcoff64_swap_lineno_out, /* _bfd_swap_lineno_out */
xcoff64_swap_reloc_out, /* _bfd_swap_reloc_out */
coff_swap_filehdr_out, /* _bfd_swap_filehdr_out */
coff_swap_aouthdr_out, /* _bfd_swap_aouthdr_out */
coff_swap_scnhdr_out, /* _bfd_swap_scnhdr_out */
FILHSZ, /* _bfd_filhsz */
AOUTSZ, /* _bfd_aoutsz */
SCNHSZ, /* _bfd_scnhsz */
SYMESZ, /* _bfd_symesz */
AUXESZ, /* _bfd_auxesz */
RELSZ, /* _bfd_relsz */
LINESZ, /* _bfd_linesz */
FILNMLEN, /* _bfd_filnmlen */
_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 */
false, /* _bfd_coff_long_section_names */
(3), /* _bfd_coff_default_section_alignment_power */
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, /* _bfd_coff_swap_filehdr_in */
coff_swap_aouthdr_in, /* _bfd_swap_aouthdr_in */
coff_swap_scnhdr_in, /* _bfd_swap_scnhdr_in */
xcoff64_swap_reloc_in, /* _bfd_reloc_in */
xcoff64_bad_format_hook, /* _bfd_bad_format_hook */
coff_set_arch_mach_hook, /* _bfd_set_arch_mach_hook */
coff_mkobject_hook, /* _bfd_mkobject_hook */
styp_to_sec_flags, /* _bfd_syp_to_sec_flags */
coff_set_alignment_hook, /* _bfd_set_alignment_hook */
coff_slurp_symbol_table, /* _bfd_coff_slurp_symbol_table */
symname_in_debug_hook, /* _coff_symname_in_debug_hook */
coff_pointerize_aux_hook, /* _bfd_coff_pointerize_aux_hook */
coff_print_aux, /* bfd_coff_print_aux */
dummy_reloc16_extra_cases, /* _bfd_coff_reloc16_extra_cases */
dummy_reloc16_estimate, /* _bfd_coff_reloc16_estimate */
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 */
/* _bfd_coff_compute_section_file_positions */
coff_compute_section_file_positions,
NULL, /* _bfd_coff_start_final_link */
xcoff64_ppc_relocate_section, /* _bfd_coff_relocate_section */
coff_rtype_to_howto, /* _bfd_coff_rtype_to_howto */
NULL , /* _bfd_coff_addust_symndx */
_bfd_generic_link_add_one_symbol, /* _bfd_coff_add_one_symbol */
coff_link_output_has_begun, /* _bfd_coff_link_output_has_begun */
coff_final_link_postscript /* _bfd_coff_final_link_postscript */
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
},
0x01EF, /* magic number */
bfd_arch_powerpc, /* architecture */
bfd_mach_ppc_620, /* machine */
bfd_arch_powerpc,
bfd_mach_ppc_620,
/* Function pointers to xcoff specific swap routines. */
xcoff64_swap_ldhdr_in, /* _xcoff_swap_ldhdr_in */
xcoff64_swap_ldhdr_out, /* _xcoff_swap_ldhdr_out */
xcoff64_swap_ldsym_in, /* _xcoff_swap_ldsym_in */
xcoff64_swap_ldsym_out, /* _xcoff_swap_ldsym_out */
xcoff64_swap_ldrel_in, /* _xcoff_swap_ldrel_in */
xcoff64_swap_ldrel_out, /* _xcoff_swap_ldrel_out */
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, /* _xcoff_ldhdrsz */
LDSYMSZ, /* _xcoff_ldsymsz */
LDRELSZ, /* _xcoff_ldrelsz */
LDHDRSZ,
LDSYMSZ,
LDRELSZ,
24, /* _xcoff_function_descriptor_size */
0, /* _xcoff_small_aout_header_size */
/* Versions. */
2, /* _xcoff_ldhdr_version */
/* xcoff vs xcoff64 putting symbol names. */
_bfd_xcoff64_put_symbol_name, /* _xcoff_put_symbol_name */
_bfd_xcoff64_put_ldsymbol_name, /* _xcoff_put_ldsymbol_name */
/* Dynamic reloc howto. */
_bfd_xcoff64_put_symbol_name,
_bfd_xcoff64_put_ldsymbol_name,
&xcoff64_dynamic_reloc,
xcoff64_create_csect_from_smclas,
/* Lineno and reloc count overflow. */
@ -2587,7 +2586,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
/* rtinit. */
88, /* _xcoff_rtinit_size */
xcoff64_generate_rtinit, /* _xcoff_generate_rtinit */
xcoff64_generate_rtinit,
};
/* The transfer vector that leads the outside world to all of the above. */
@ -2598,36 +2597,35 @@ const bfd_target rs6000coff64_vec =
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),
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC
| HAS_SYMS | HAS_LOCALS | WP_TEXT),
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC),
0, /* leading char */
'/', /* ar_pad_char */
15, /* ar_max_namelen??? FIXMEmgo */
15, /* ar_max_namelen */
/* 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 */
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_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_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,
@ -2651,93 +2649,82 @@ const bfd_target rs6000coff64_vec =
},
/* 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_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_copy_private_bfd */
/* _bfd_merge_private_bfd_data */
_bfd_xcoff_copy_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 */
((boolean (*) (bfd *, flagword)) bfd_true),
((boolean (*) (bfd *, void * )) bfd_true),
/* Core */
coff_core_file_failing_command, /* _core_file_failing_command */
coff_core_file_failing_signal, /* _core_file_failing_signal */
coff_core_file_matches_executable_p, /* _core_file_matches_executable_p */
coff_core_file_failing_command,
coff_core_file_failing_signal,
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 */
xcoff64_slurp_armap,
bfd_false,
((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_stat_arch_elt, /* _generic_stat_arch_elt */
/* XCOFF archives do not have a timestamp. */
bfd_true, /* _update_armap_timestamp */
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, /* _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 */
coff_get_symtab_upper_bound,
coff_get_symtab,
coff_make_empty_symbol,
coff_print_symbol,
coff_get_symbol_info,
_bfd_xcoff_is_local_label_name,
coff_get_lineno,
coff_find_nearest_line,
coff_bfd_make_debug_symbol,
_bfd_generic_read_minisymbols,
_bfd_generic_minisymbol_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 */
coff_get_reloc_upper_bound,
coff_canonicalize_reloc,
xcoff64_reloc_type_lookup,
/* Write */
coff_set_arch_mach, /* _set_arch_mach */
coff_set_section_contents, /* _set_section_contents */
coff_set_arch_mach,
coff_set_section_contents,
/* Link */
xcoff64_sizeof_headers, /* _sizeof_headers */
/* _bfd_get_relocated_section_contents */
xcoff64_sizeof_headers,
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_generic_link_hash_table_free, /* _bfd_link_hash_table_free */
_bfd_xcoff_bfd_link_add_symbols, /* _bfd_link_add_symbols */
_bfd_generic_link_just_syms, /* _bfd_link_just_syms */
_bfd_xcoff_bfd_final_link, /* _bfd_final_link */
_bfd_generic_link_split_section, /* _bfd_link_split_section */
bfd_generic_gc_sections, /* _bfd_gc_sections */
bfd_generic_merge_sections, /* _bfd_merge_sections */
bfd_generic_discard_group, /* _bfd_discard_group */
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_discard_group,
/* 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 */
_bfd_xcoff_canonicalize_dynamic_symtab,
_bfd_xcoff_get_dynamic_reloc_upper_bound,
_bfd_xcoff_canonicalize_dynamic_reloc,
/* Opposite endian version, none exists */
NULL,
/* back end data */
(void *) &bfd_xcoff_backend_data,
};
@ -2750,81 +2737,78 @@ extern int xcoff64_core_file_failing_signal PARAMS ((bfd *));
static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data =
{
{ /* COFF backend, defined in libcoff.h. */
_bfd_xcoff64_swap_aux_in, /* _bfd_coff_swap_aux_in */
_bfd_xcoff64_swap_sym_in, /* _bfd_coff_swap_sym_in */
_bfd_xcoff64_swap_lineno_in, /* _bfd_coff_swap_lineno_in */
_bfd_xcoff64_swap_aux_out, /* _bfd_swap_aux_out */
_bfd_xcoff64_swap_sym_out, /* _bfd_swap_sym_out */
_bfd_xcoff64_swap_lineno_out, /* _bfd_swap_lineno_out */
xcoff64_swap_reloc_out, /* _bfd_swap_reloc_out */
coff_swap_filehdr_out, /* _bfd_swap_filehdr_out */
coff_swap_aouthdr_out, /* _bfd_swap_aouthdr_out */
coff_swap_scnhdr_out, /* _bfd_swap_scnhdr_out */
FILHSZ, /* _bfd_filhsz */
AOUTSZ, /* _bfd_aoutsz */
SCNHSZ, /* _bfd_scnhsz */
SYMESZ, /* _bfd_symesz */
AUXESZ, /* _bfd_auxesz */
RELSZ, /* _bfd_relsz */
LINESZ, /* _bfd_linesz */
FILNMLEN, /* _bfd_filnmlen */
_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 */
false, /* _bfd_coff_long_section_names */
(3), /* _bfd_coff_default_section_alignment_power */
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, /* _bfd_coff_swap_filehdr_in */
coff_swap_aouthdr_in, /* _bfd_swap_aouthdr_in */
coff_swap_scnhdr_in, /* _bfd_swap_scnhdr_in */
xcoff64_swap_reloc_in, /* _bfd_reloc_in */
xcoff64_bad_format_hook, /* _bfd_bad_format_hook */
coff_set_arch_mach_hook, /* _bfd_set_arch_mach_hook */
coff_mkobject_hook, /* _bfd_mkobject_hook */
styp_to_sec_flags, /* _bfd_syp_to_sec_flags */
coff_set_alignment_hook, /* _bfd_set_alignment_hook */
coff_slurp_symbol_table, /* _bfd_coff_slurp_symbol_table */
symname_in_debug_hook, /* _coff_symname_in_debug_hook */
coff_pointerize_aux_hook, /* _bfd_coff_pointerize_aux_hook */
coff_print_aux, /* bfd_coff_print_aux */
dummy_reloc16_extra_cases, /* _bfd_coff_reloc16_extra_cases */
dummy_reloc16_estimate, /* _bfd_coff_reloc16_estimate */
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 */
/* _bfd_coff_compute_section_file_positions */
coff_compute_section_file_positions,
NULL, /* _bfd_coff_start_final_link */
xcoff64_ppc_relocate_section, /* _bfd_coff_relocate_section */
coff_rtype_to_howto, /* _bfd_coff_rtype_to_howto */
NULL , /* _bfd_coff_addust_symndx */
_bfd_generic_link_add_one_symbol, /* _bfd_coff_add_one_symbol */
coff_link_output_has_begun, /* _bfd_coff_link_output_has_begun */
coff_final_link_postscript /* _bfd_coff_final_link_postscript */
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
},
U64_TOCMAGIC, /* magic number */
bfd_arch_powerpc, /* architecture */
bfd_mach_ppc_620, /* machine */
bfd_arch_powerpc,
bfd_mach_ppc_620,
/* Function pointers to xcoff specific swap routines. */
xcoff64_swap_ldhdr_in, /* _xcoff_swap_ldhdr_in */
xcoff64_swap_ldhdr_out, /* _xcoff_swap_ldhdr_out */
xcoff64_swap_ldsym_in, /* _xcoff_swap_ldsym_in */
xcoff64_swap_ldsym_out, /* _xcoff_swap_ldsym_out */
xcoff64_swap_ldrel_in, /* _xcoff_swap_ldrel_in */
xcoff64_swap_ldrel_out, /* _xcoff_swap_ldrel_out */
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, /* _xcoff_ldhdrsz */
LDSYMSZ, /* _xcoff_ldsymsz */
LDRELSZ, /* _xcoff_ldrelsz */
LDHDRSZ,
LDSYMSZ,
LDRELSZ,
24, /* _xcoff_function_descriptor_size */
0, /* _xcoff_small_aout_header_size */
/* Versions. */
2, /* _xcoff_ldhdr_version */
_bfd_xcoff64_put_symbol_name, /* _xcoff_put_symbol_name */
_bfd_xcoff64_put_ldsymbol_name, /* _xcoff_put_ldsymbol_name */
/* Dynamic reloc howto. */
_bfd_xcoff64_put_symbol_name,
_bfd_xcoff64_put_ldsymbol_name,
&xcoff64_dynamic_reloc,
xcoff64_create_csect_from_smclas,
@ -2841,7 +2825,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data =
/* rtinit. */
88, /* _xcoff_rtinit_size */
xcoff64_generate_rtinit, /* _xcoff_generate_rtinit */
xcoff64_generate_rtinit,
};
/* The transfer vector that leads the outside world to all of the above. */
@ -2852,36 +2836,35 @@ const bfd_target aix5coff64_vec =
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),
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | DYNAMIC
| HAS_SYMS | HAS_LOCALS | WP_TEXT),
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC),
0, /* leading char */
'/', /* ar_pad_char */
15, /* ar_max_namelen??? FIXMEmgo */
15, /* ar_max_namelen */
/* 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 */
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_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_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,
@ -2905,92 +2888,81 @@ const bfd_target aix5coff64_vec =
},
/* 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_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_copy_private_bfd */
/* _bfd_merge_private_bfd_data */
_bfd_xcoff_copy_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 */
((boolean (*) (bfd *, flagword)) bfd_true),
((boolean (*) (bfd *, void * )) bfd_true),
/* Core */
xcoff64_core_file_failing_command, /* _core_file_failing_command */
xcoff64_core_file_failing_signal, /* _core_file_failing_signal */
xcoff64_core_file_matches_executable_p, /* _core_file_matches_executable_p */
xcoff64_core_file_failing_command,
xcoff64_core_file_failing_signal,
xcoff64_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 */
xcoff64_slurp_armap,
bfd_false,
((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_stat_arch_elt, /* _generic_stat_arch_elt */
/* XCOFF archives do not have a timestamp. */
bfd_true, /* _update_armap_timestamp */
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, /* _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 */
coff_get_symtab_upper_bound,
coff_get_symtab,
coff_make_empty_symbol,
coff_print_symbol,
coff_get_symbol_info,
_bfd_xcoff_is_local_label_name,
coff_get_lineno,
coff_find_nearest_line,
coff_bfd_make_debug_symbol,
_bfd_generic_read_minisymbols,
_bfd_generic_minisymbol_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 */
coff_get_reloc_upper_bound,
coff_canonicalize_reloc,
xcoff64_reloc_type_lookup,
/* Write */
coff_set_arch_mach, /* _set_arch_mach */
coff_set_section_contents, /* _set_section_contents */
coff_set_arch_mach,
coff_set_section_contents,
/* Link */
xcoff64_sizeof_headers, /* _sizeof_headers */
/* _bfd_get_relocated_section_contents */
xcoff64_sizeof_headers,
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_generic_link_hash_table_free, /* _bfd_link_hash_table_free */
_bfd_xcoff_bfd_link_add_symbols, /* _bfd_link_add_symbols */
_bfd_generic_link_just_syms, /* _bfd_link_just_syms */
_bfd_xcoff_bfd_final_link, /* _bfd_final_link */
_bfd_generic_link_split_section, /* _bfd_link_split_section */
bfd_generic_gc_sections, /* _bfd_gc_sections */
bfd_generic_merge_sections, /* _bfd_merge_sections */
bfd_generic_discard_group, /* _bfd_discard_group */
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_discard_group,
/* 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 */
_bfd_xcoff_canonicalize_dynamic_symtab,
_bfd_xcoff_get_dynamic_reloc_upper_bound,
_bfd_xcoff_canonicalize_dynamic_reloc,
/* Opposite endian version, none exists. */
NULL,
/* back end data */
(void *) & bfd_xcoff_aix5_backend_data,
};