/* BFD back-end for IBM RS/6000 "XCOFF64" files.
- Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+ 2010
Free Software Foundation, Inc.
Written Clinton Popetz.
Contributed by Cygnus Support.
}
static void
-_bfd_xcoff64_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
+_bfd_xcoff64_swap_aux_in (abfd, ext1, type, in_class, indx, numaux, in1)
bfd *abfd;
PTR ext1;
int type;
- int class;
+ int in_class;
int indx;
int numaux;
PTR in1;
union external_auxent *ext = (union external_auxent *) ext1;
union internal_auxent *in = (union internal_auxent *) in1;
- switch (class)
+ switch (in_class)
{
case C_FILE:
if (ext->x_file.x_n.x_zeroes[0] == 0)
break;
}
- if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
+ if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
+ || ISTAG (in_class))
{
in->x_sym.x_fcnary.x_fcn.x_lnnoptr
= H_GET_64 (abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
}
static unsigned int
-_bfd_xcoff64_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
+_bfd_xcoff64_swap_aux_out (abfd, inp, type, in_class, indx, numaux, extp)
bfd *abfd;
PTR inp;
int type;
- int class;
+ int in_class;
int indx ATTRIBUTE_UNUSED;
int numaux ATTRIBUTE_UNUSED;
PTR extp;
union external_auxent *ext = (union external_auxent *) extp;
memset ((PTR) ext, 0, bfd_coff_auxesz (abfd));
- switch (class)
+ switch (in_class)
{
case C_FILE:
if (in->x_file.x_n.x_zeroes == 0)
break;
}
- if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
+ if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
+ || ISTAG (in_class))
{
H_PUT_64 (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,
ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
EMPTY_HOWTO (0xe),
- /* Non-relocating reference. */
+ /* Non-relocating reference. Bitsize is 1 so that r_rsize is 0. */
HOWTO (R_REF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
- 32, /* bitsize */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
return &xcoff64_howto_table[0x1c];
case BFD_RELOC_64:
return &xcoff64_howto_table[0];
+ case BFD_RELOC_NONE:
+ return &xcoff64_howto_table[0xf];
default:
return NULL;
}
/* Copy */
_bfd_xcoff_copy_private_bfd_data,
- ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+ _bfd_generic_bfd_merge_private_bfd_data,
_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),
+ _bfd_generic_bfd_copy_private_section_data,
+ _bfd_generic_bfd_copy_private_symbol_data,
+ _bfd_generic_bfd_copy_private_header_data,
+ _bfd_generic_bfd_set_private_flags,
+ _bfd_generic_bfd_print_private_bfd_data,
/* Core */
coff_core_file_failing_command,
/* Archive */
xcoff64_slurp_armap,
- bfd_false,
- ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+ _bfd_noarchive_slurp_extended_name_table,
+ _bfd_noarchive_construct_extended_name_table,
bfd_dont_truncate_arname,
_bfd_xcoff_write_armap,
_bfd_xcoff_read_ar_hdr,
+ _bfd_generic_write_ar_hdr,
xcoff64_openr_next_archived_file,
_bfd_generic_get_elt_at_index,
_bfd_xcoff_stat_arch_elt,
_bfd_generic_link_hash_table_free,
_bfd_xcoff_bfd_link_add_symbols,
_bfd_generic_link_just_syms,
+ _bfd_generic_copy_link_hash_symbol_type,
_bfd_xcoff_bfd_final_link,
_bfd_generic_link_split_section,
bfd_generic_gc_sections,
/* Copy */
_bfd_xcoff_copy_private_bfd_data,
- ((bfd_boolean (*) (bfd *, bfd *)) bfd_true),
+ _bfd_generic_bfd_merge_private_bfd_data,
_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),
+ _bfd_generic_bfd_copy_private_section_data,
+ _bfd_generic_bfd_copy_private_symbol_data,
+ _bfd_generic_bfd_copy_private_header_data,
+ _bfd_generic_bfd_set_private_flags,
+ _bfd_generic_bfd_print_private_bfd_data,
/* Core */
xcoff64_core_file_failing_command,
/* Archive */
xcoff64_slurp_armap,
- bfd_false,
- ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false),
+ _bfd_noarchive_slurp_extended_name_table,
+ _bfd_noarchive_construct_extended_name_table,
bfd_dont_truncate_arname,
_bfd_xcoff_write_armap,
_bfd_xcoff_read_ar_hdr,
+ _bfd_generic_write_ar_hdr,
xcoff64_openr_next_archived_file,
_bfd_generic_get_elt_at_index,
_bfd_xcoff_stat_arch_elt,
_bfd_generic_link_hash_table_free,
_bfd_xcoff_bfd_link_add_symbols,
_bfd_generic_link_just_syms,
+ _bfd_generic_copy_link_hash_symbol_type,
_bfd_xcoff_bfd_final_link,
_bfd_generic_link_split_section,
bfd_generic_gc_sections,