mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-23 20:19:49 +00:00
2000-11-15 Kazu Hirata <kazu@hxi.com>
* coff-arm.c: Fix formatting. * coff-ppc.c: Likewise. * coff-rs6000.c: Likewise.
This commit is contained in:
parent
b095261a94
commit
c5930ee6b4
@ -1,3 +1,9 @@
|
||||
2000-11-15 Kazu Hirata <kazu@hxi.com>
|
||||
|
||||
* coff-arm.c: Fix formatting.
|
||||
* coff-ppc.c: Likewise.
|
||||
* coff-rs6000.c: Likewise.
|
||||
|
||||
2000-11-15 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* elf64-alpha.c (elf64_alpha_check_relocs): Create the reloc
|
||||
|
@ -985,7 +985,7 @@ insert_thumb_branch (br_insn, rel_off)
|
||||
else if ((br_insn & HI_LOW_ORDER) == HI_LOW_ORDER)
|
||||
br_insn = HI_LOW_ORDER | (high_bits << 16) | low_bits;
|
||||
else
|
||||
abort(); /* error - not a valid branch instruction form */
|
||||
abort (); /* error - not a valid branch instruction form */
|
||||
|
||||
/* FIXME: abort is probably not the right call. krk@cygnus.com */
|
||||
|
||||
|
@ -88,7 +88,7 @@ extern void dump_toc PARAMS ((PTR));
|
||||
fprintf(stderr,\
|
||||
_("File %s, line %d, Hash check failure, bad eye %8s\n"), \
|
||||
__FILE__, __LINE__, addr->eye_catcher); \
|
||||
abort(); \
|
||||
abort (); \
|
||||
}
|
||||
|
||||
#else
|
||||
@ -925,7 +925,7 @@ ppc_record_toc_entry(abfd, info, sec, sym, toc_kind)
|
||||
/* allocate a table */
|
||||
local_syms =
|
||||
(int *) bfd_zalloc (abfd,
|
||||
obj_raw_syment_count(abfd) * sizeof(int));
|
||||
obj_raw_syment_count(abfd) * sizeof (int));
|
||||
if (local_syms == 0)
|
||||
return false;
|
||||
obj_coff_local_toc_table(abfd) = local_syms;
|
||||
@ -1151,7 +1151,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
if (r_type == IMAGE_REL_PPC_IMGLUE && h == 0)
|
||||
{
|
||||
/* An IMGLUE reloc must have a name. Something is very wrong. */
|
||||
abort();
|
||||
abort ();
|
||||
}
|
||||
|
||||
sec = NULL;
|
||||
@ -1219,7 +1219,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
if ( toc_section == NULL )
|
||||
{
|
||||
/* There is no toc section. Something is very wrong. */
|
||||
abort();
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1495,7 +1495,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
if (myh == 0)
|
||||
{
|
||||
/* Missing magic cookies. Something is very wrong. */
|
||||
abort();
|
||||
abort ();
|
||||
}
|
||||
|
||||
val = myh->root.u.def.value +
|
||||
@ -1702,14 +1702,14 @@ ppc_allocate_toc_section (info)
|
||||
if (bfd_of_toc_owner == 0)
|
||||
{
|
||||
/* No toc owner? Something is very wrong. */
|
||||
abort();
|
||||
abort ();
|
||||
}
|
||||
|
||||
s = bfd_get_section_by_name ( bfd_of_toc_owner , TOC_SECTION_NAME);
|
||||
if (s == NULL)
|
||||
{
|
||||
/* No toc section? Something is very wrong. */
|
||||
abort();
|
||||
abort ();
|
||||
}
|
||||
|
||||
foo = (bfd_byte *) bfd_alloc(bfd_of_toc_owner, global_toc_size);
|
||||
@ -1752,7 +1752,7 @@ ppc_process_before_allocation (abfd, info)
|
||||
i=_bfd_coff_read_internal_relocs(abfd,sec,1,0,0,0);
|
||||
|
||||
if (i == 0)
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
for (rel=i;rel<i+sec->reloc_count;++rel)
|
||||
{
|
||||
@ -2004,7 +2004,7 @@ ppc_imglue_reloc (abfd,
|
||||
|
||||
|
||||
#define MAX_RELOC_INDEX \
|
||||
(sizeof(ppc_coff_howto_table) / sizeof(ppc_coff_howto_table[0]) - 1)
|
||||
(sizeof (ppc_coff_howto_table) / sizeof (ppc_coff_howto_table[0]) - 1)
|
||||
|
||||
/* FIXME: There is a possiblity that when we read in a reloc from a file,
|
||||
that there are some bits encoded in the upper portion of the
|
||||
@ -2036,11 +2036,11 @@ ppc_coff_rtype2howto (relent, internal)
|
||||
|
||||
/* the masking process only slices off the bottom byte for r_type. */
|
||||
if ( r_type > MAX_RELOC_INDEX )
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
/* check for absolute crap */
|
||||
if ( junk != 0 )
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
switch(r_type)
|
||||
{
|
||||
@ -2107,11 +2107,11 @@ coff_ppc_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
|
||||
|
||||
/* the masking process only slices off the bottom byte for r_type. */
|
||||
if ( r_type > MAX_RELOC_INDEX )
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
/* check for absolute crap */
|
||||
if ( junk != 0 )
|
||||
abort();
|
||||
abort ();
|
||||
|
||||
switch(r_type)
|
||||
{
|
||||
@ -2278,7 +2278,7 @@ ppc_coff_swap_sym_in_hook (abfd, ext1, in1)
|
||||
|| !bfd_set_section_alignment (abfd, s, 2))
|
||||
{
|
||||
/* FIXME: set appropriate bfd error */
|
||||
abort();
|
||||
abort ();
|
||||
}
|
||||
|
||||
/* save the bfd for later allocation */
|
||||
|
@ -5,7 +5,7 @@
|
||||
Using the following chars caused a compiler warning on HIUX (so I replaced
|
||||
them with octal escapes), and isn't useful without an understanding of what
|
||||
character set it is.
|
||||
Written by Metin G. Ozisik, Mimi Ph\373\364ng-Th\345o V\365,
|
||||
Written by Metin G. Ozisik, Mimi Ph\373\364ng-Th\345o V\365,
|
||||
and John Gilmore.
|
||||
Archive support from Damon A. Permezel.
|
||||
Contributed by IBM Corporation and Cygnus Support.
|
||||
@ -26,7 +26,6 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
@ -37,7 +36,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#define TARGET_SYM rs6000coff_vec
|
||||
#include "xcoff-target.h"
|
||||
|
||||
|
||||
/* The main body of code is in coffcode.h. */
|
||||
|
||||
static const char *normalize_filename PARAMS ((bfd *));
|
||||
@ -133,7 +131,6 @@ _bfd_xcoff_is_local_label_name (abfd, name)
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
_bfd_xcoff_swap_sym_in (abfd, ext1, in1)
|
||||
bfd *abfd;
|
||||
@ -143,19 +140,18 @@ _bfd_xcoff_swap_sym_in (abfd, ext1, in1)
|
||||
SYMENT *ext = (SYMENT *)ext1;
|
||||
struct internal_syment *in = (struct internal_syment *)in1;
|
||||
|
||||
|
||||
if(ext->e.e_name[0] != 0)
|
||||
{
|
||||
memcpy(in->_n._n_name, ext->e.e_name, SYMNMLEN);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
in->_n._n_n._n_zeroes = 0;
|
||||
in->_n._n_n._n_offset =
|
||||
in->_n._n_n._n_offset =
|
||||
bfd_h_get_32(abfd, (bfd_byte *) ext->e.e.e_offset);
|
||||
}
|
||||
|
||||
in->n_value = bfd_h_get_32(abfd, (bfd_byte *) ext->e_value);
|
||||
in->n_value = bfd_h_get_32(abfd, (bfd_byte *) ext->e_value);
|
||||
in->n_scnum = bfd_h_get_16(abfd, (bfd_byte *) ext->e_scnum);
|
||||
in->n_type = bfd_h_get_16(abfd, (bfd_byte *) ext->e_type);
|
||||
in->n_sclass = bfd_h_get_8(abfd, ext->e_sclass);
|
||||
@ -178,7 +174,7 @@ _bfd_xcoff_swap_sym_out (abfd, inp, extp)
|
||||
else
|
||||
{
|
||||
bfd_h_put_32(abfd, 0, (bfd_byte *) ext->e.e.e_zeroes);
|
||||
bfd_h_put_32(abfd, in->_n._n_n._n_offset,
|
||||
bfd_h_put_32(abfd, in->_n._n_n._n_offset,
|
||||
(bfd_byte *) ext->e.e.e_offset);
|
||||
}
|
||||
|
||||
@ -214,7 +210,7 @@ _bfd_xcoff_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
|
||||
case C_FILE:
|
||||
if (ext->x_file.x_fname[0] == 0) {
|
||||
in->x_file.x_n.x_zeroes = 0;
|
||||
in->x_file.x_n.x_offset =
|
||||
in->x_file.x_n.x_offset =
|
||||
bfd_h_get_32(abfd, (bfd_byte *) ext->x_file.x_n.x_offset);
|
||||
} else {
|
||||
if (numaux > 1)
|
||||
@ -235,7 +231,7 @@ _bfd_xcoff_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
|
||||
case C_HIDEXT:
|
||||
if (indx + 1 == numaux)
|
||||
{
|
||||
in->x_csect.x_scnlen.l =
|
||||
in->x_csect.x_scnlen.l =
|
||||
bfd_h_get_32 (abfd, ext->x_csect.x_scnlen);
|
||||
in->x_csect.x_parmhash = bfd_h_get_32 (abfd,
|
||||
ext->x_csect.x_parmhash);
|
||||
@ -255,11 +251,11 @@ _bfd_xcoff_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
|
||||
case C_LEAFSTAT:
|
||||
case C_HIDDEN:
|
||||
if (type == T_NULL) {
|
||||
in->x_scn.x_scnlen = bfd_h_get_32(abfd,
|
||||
in->x_scn.x_scnlen = bfd_h_get_32(abfd,
|
||||
(bfd_byte *) ext->x_scn.x_scnlen);
|
||||
in->x_scn.x_nreloc = bfd_h_get_16(abfd,
|
||||
in->x_scn.x_nreloc = bfd_h_get_16(abfd,
|
||||
(bfd_byte *) ext->x_scn.x_nreloc);
|
||||
in->x_scn.x_nlinno = bfd_h_get_16(abfd,
|
||||
in->x_scn.x_nlinno = bfd_h_get_16(abfd,
|
||||
(bfd_byte *) ext->x_scn.x_nlinno);
|
||||
/* PE defines some extra fields; we zero them out for
|
||||
safety. */
|
||||
@ -305,12 +301,10 @@ _bfd_xcoff_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
|
||||
|
||||
end: ;
|
||||
/* the semicolon is because MSVC doesn't like labels at
|
||||
end of block. */
|
||||
end of block. */
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
unsigned int
|
||||
_bfd_xcoff_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
|
||||
bfd *abfd;
|
||||
@ -377,9 +371,9 @@ _bfd_xcoff_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
|
||||
|
||||
if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
|
||||
{
|
||||
bfd_h_put_32(abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,
|
||||
bfd_h_put_32(abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,
|
||||
(bfd_byte *) ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
|
||||
PUTWORD(abfd, in->x_sym.x_fcnary.x_fcn.x_endndx.l,
|
||||
PUTWORD(abfd, in->x_sym.x_fcnary.x_fcn.x_endndx.l,
|
||||
(bfd_byte *) ext->x_sym.x_fcnary.x_fcn.x_endndx);
|
||||
}
|
||||
else
|
||||
@ -399,9 +393,9 @@ _bfd_xcoff_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
|
||||
(bfd_byte *) ext->x_sym.x_misc.x_fsize);
|
||||
else
|
||||
{
|
||||
bfd_h_put_16(abfd, in->x_sym.x_misc.x_lnsz.x_lnno,
|
||||
bfd_h_put_16(abfd, in->x_sym.x_misc.x_lnsz.x_lnno,
|
||||
(bfd_byte *)ext->x_sym.x_misc.x_lnsz.x_lnno);
|
||||
bfd_h_put_16(abfd, in->x_sym.x_misc.x_lnsz.x_size,
|
||||
bfd_h_put_16(abfd, in->x_sym.x_misc.x_lnsz.x_size,
|
||||
(bfd_byte *)ext->x_sym.x_misc.x_lnsz.x_size);
|
||||
}
|
||||
|
||||
@ -409,7 +403,6 @@ end:
|
||||
return bfd_coff_auxesz (abfd);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* The XCOFF reloc table. Actually, XCOFF relocations specify the
|
||||
bitsize and whether they are signed or not, along with a
|
||||
@ -424,344 +417,344 @@ end:
|
||||
reloc_howto_type xcoff_howto_table[] =
|
||||
{
|
||||
/* Standard 32 bit relocation. */
|
||||
HOWTO (0, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_POS", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_POS", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* 32 bit relocation, but store negative value. */
|
||||
HOWTO (1, /* type */
|
||||
0, /* rightshift */
|
||||
-2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (1, /* type */
|
||||
0, /* rightshift */
|
||||
-2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_NEG", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_NEG", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* 32 bit PC relative relocation. */
|
||||
HOWTO (2, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (2, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_REL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_REL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* 16 bit TOC relative relocation. */
|
||||
HOWTO (3, /* type */
|
||||
0, /* rightshift */
|
||||
1, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (3, /* type */
|
||||
0, /* rightshift */
|
||||
1, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_TOC", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_TOC", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* I don't really know what this is. */
|
||||
HOWTO (4, /* type */
|
||||
1, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (4, /* type */
|
||||
1, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RTB", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RTB", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* External TOC relative symbol. */
|
||||
HOWTO (5, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (5, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_GL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_GL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Local TOC relative symbol. */
|
||||
HOWTO (6, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (6, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_TCL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_TCL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
EMPTY_HOWTO (7),
|
||||
|
||||
|
||||
/* Non modifiable absolute branch. */
|
||||
HOWTO (8, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
26, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (8, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
26, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_BA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0x3fffffc, /* src_mask */
|
||||
0x3fffffc, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_BA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0x3fffffc, /* src_mask */
|
||||
0x3fffffc, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
EMPTY_HOWTO (9),
|
||||
|
||||
/* Non modifiable relative branch. */
|
||||
HOWTO (0xa, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
26, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0xa, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
26, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_BR", /* name */
|
||||
true, /* partial_inplace */
|
||||
0x3fffffc, /* src_mask */
|
||||
0x3fffffc, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_BR", /* name */
|
||||
true, /* partial_inplace */
|
||||
0x3fffffc, /* src_mask */
|
||||
0x3fffffc, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
EMPTY_HOWTO (0xb),
|
||||
|
||||
/* Indirect load. */
|
||||
HOWTO (0xc, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0xc, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Load address. */
|
||||
HOWTO (0xd, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0xd, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RLA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RLA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
EMPTY_HOWTO (0xe),
|
||||
|
||||
|
||||
/* Non-relocating reference. */
|
||||
HOWTO (0xf, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0xf, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_REF", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
0, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_REF", /* name */
|
||||
false, /* partial_inplace */
|
||||
0, /* src_mask */
|
||||
0, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
EMPTY_HOWTO (0x10),
|
||||
EMPTY_HOWTO (0x11),
|
||||
|
||||
|
||||
/* TOC relative indirect load. */
|
||||
HOWTO (0x12, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x12, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_TRL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_TRL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* TOC relative load address. */
|
||||
HOWTO (0x13, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x13, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_TRLA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_TRLA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Modifiable relative branch. */
|
||||
HOWTO (0x14, /* type */
|
||||
1, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x14, /* type */
|
||||
1, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RRTBI", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RRTBI", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Modifiable absolute branch. */
|
||||
HOWTO (0x15, /* type */
|
||||
1, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x15, /* type */
|
||||
1, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RRTBA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RRTBA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Modifiable call absolute indirect. */
|
||||
HOWTO (0x16, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x16, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_CAI", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_CAI", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Modifiable call relative. */
|
||||
HOWTO (0x17, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x17, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_CREL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_CREL", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Modifiable branch absolute. */
|
||||
HOWTO (0x18, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
26, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x18, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
26, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RBA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RBA", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Modifiable branch absolute. */
|
||||
HOWTO (0x19, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x19, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RBAC", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RBAC", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Modifiable branch relative. */
|
||||
HOWTO (0x1a, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
26, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x1a, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
26, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RBR", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RBR", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
|
||||
/* Modifiable branch absolute. */
|
||||
HOWTO (0x1b, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0x1b, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_RBRC", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_RBRC", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
HOWTO (0, /* type */
|
||||
0, /* rightshift */
|
||||
@ -783,51 +776,51 @@ reloc_howto_type xcoff_howto_table[] =
|
||||
static reloc_howto_type xcoff_howto_table_16[] =
|
||||
{
|
||||
/* Standard 16 bit relocation. */
|
||||
HOWTO (0, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (0, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_POS_16", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_POS_16", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* 16 bit relocation, but store negative value. */
|
||||
HOWTO (1, /* type */
|
||||
0, /* rightshift */
|
||||
-2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (1, /* type */
|
||||
0, /* rightshift */
|
||||
-2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
16, /* bitsize */
|
||||
false, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_bitfield, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_NEG_16", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_NEG_16", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false), /* pcrel_offset */
|
||||
|
||||
/* 16 bit PC relative relocation. */
|
||||
HOWTO (2, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
HOWTO (2, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||
32, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
0, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
0, /* special_function */
|
||||
"R_REL_16", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
0, /* special_function */
|
||||
"R_REL_16", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
false) /* pcrel_offset */
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
_bfd_xcoff_rtype2howto (relent, internal)
|
||||
arelent *relent;
|
||||
@ -836,18 +829,18 @@ _bfd_xcoff_rtype2howto (relent, internal)
|
||||
relent->howto = xcoff_howto_table + internal->r_type;
|
||||
|
||||
if (relent->howto->bitsize != ((unsigned int) internal->r_size & 0x1f) + 1
|
||||
&& (internal->r_type
|
||||
< sizeof(xcoff_howto_table_16)/sizeof(xcoff_howto_table_16[0])))
|
||||
&& (internal->r_type
|
||||
< sizeof (xcoff_howto_table_16)/sizeof (xcoff_howto_table_16[0])))
|
||||
relent->howto = xcoff_howto_table_16 + internal->r_type;
|
||||
|
||||
/* The r_size field of an XCOFF reloc encodes the bitsize of the
|
||||
relocation, as well as indicating whether it is signed or not.
|
||||
Doublecheck that the relocation information gathered from the
|
||||
type matches this information. The bitsize is not significant
|
||||
for R_REF relocs. */
|
||||
if (relent->howto->dst_mask != 0
|
||||
&& (relent->howto->bitsize
|
||||
!= ((unsigned int) internal->r_size & 0x3f) + 1))
|
||||
type matches this information. The bitsize is not significant
|
||||
for R_REF relocs. */
|
||||
if (relent->howto->dst_mask != 0
|
||||
&& (relent->howto->bitsize
|
||||
!= ((unsigned int) internal->r_size & 0x3f) + 1))
|
||||
abort ();
|
||||
#if 0
|
||||
if ((internal->r_size & 0x80) != 0
|
||||
@ -992,7 +985,6 @@ struct xcoff_ar_file_hdr_big
|
||||
|
||||
#define SIZEOF_AR_FILE_HDR_BIG (6 * 20 + SXCOFFARMAG)
|
||||
|
||||
|
||||
/* Each XCOFF archive member starts with this (printable) structure. */
|
||||
|
||||
struct xcoff_ar_hdr
|
||||
@ -1069,7 +1061,6 @@ struct xcoff_ar_hdr_big
|
||||
|
||||
#define SIZEOF_AR_HDR_BIG (3 * 20 + 4 * 12 + 4)
|
||||
|
||||
|
||||
/* We often have to distinguish between the old and big file format.
|
||||
Make it a bit cleaner. We can use `xcoff_ardata' here because the
|
||||
`hdr' member has the same size and position in both formats. */
|
||||
@ -1146,18 +1137,18 @@ _bfd_xcoff_slurp_armap (abfd)
|
||||
|
||||
/* The symbol table starts with a four byte count. */
|
||||
c = bfd_h_get_32 (abfd, contents);
|
||||
|
||||
|
||||
if (c * 4 >= sz)
|
||||
{
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bfd_ardata (abfd)->symdefs = ((carsym *)
|
||||
bfd_alloc (abfd, c * sizeof (carsym)));
|
||||
if (bfd_ardata (abfd)->symdefs == NULL)
|
||||
return false;
|
||||
|
||||
|
||||
/* After the count comes a list of four byte file offsets. */
|
||||
for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 4;
|
||||
i < c;
|
||||
@ -1209,12 +1200,12 @@ _bfd_xcoff_slurp_armap (abfd)
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bfd_ardata (abfd)->symdefs = ((carsym *)
|
||||
bfd_alloc (abfd, c * sizeof (carsym)));
|
||||
if (bfd_ardata (abfd)->symdefs == NULL)
|
||||
return false;
|
||||
|
||||
|
||||
/* After the count comes a list of eight byte file offsets. */
|
||||
for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 8;
|
||||
i < c;
|
||||
@ -1791,13 +1782,13 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
|
||||
}
|
||||
object_bfd = ob;
|
||||
}
|
||||
/* A quick sanity check... */
|
||||
/* A quick sanity check... */
|
||||
BFD_ASSERT (orl_count_64 + orl_count_32 == orl_count);
|
||||
BFD_ASSERT (stridx_64 + stridx_32 == stridx);
|
||||
|
||||
/* Now write out each map. */
|
||||
if (! xcoff_write_one_armap_big (abfd, map, orl_count, orl_count_32,
|
||||
stridx_32, false,
|
||||
stridx_32, false,
|
||||
xcoff_ardata_big (abfd)->memoff,
|
||||
xcoff_ardata_big (abfd)->symoff))
|
||||
return false;
|
||||
@ -1806,7 +1797,7 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
|
||||
xcoff_ardata_big (abfd)->symoff,
|
||||
xcoff_ardata_big (abfd)->symoff64))
|
||||
return false;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user