2001-01-02 Kazu Hirata <kazu@hxi.com>
* pc532-mach.c: Fix formatting. * pe-arm.c: Likewise. * pe-i386.c: Likewise. * pe-mips.c: Likewise. * pe-ppc.c: Likewise. * pe-sh.c: Likewise. * pei-mips.c: Likewise. * pei-sh.c: Likewise. * ppcboot.c: Likewise. * ptrace-core.c: Likewise.
This commit is contained in:
parent
aed80daedf
commit
892339eeeb
@ -1,3 +1,16 @@
|
|||||||
|
2001-01-02 Kazu Hirata <kazu@hxi.com>
|
||||||
|
|
||||||
|
* pc532-mach.c: Fix formatting.
|
||||||
|
* pe-arm.c: Likewise.
|
||||||
|
* pe-i386.c: Likewise.
|
||||||
|
* pe-mips.c: Likewise.
|
||||||
|
* pe-ppc.c: Likewise.
|
||||||
|
* pe-sh.c: Likewise.
|
||||||
|
* pei-mips.c: Likewise.
|
||||||
|
* pei-sh.c: Likewise.
|
||||||
|
* ppcboot.c: Likewise.
|
||||||
|
* ptrace-core.c: Likewise.
|
||||||
|
|
||||||
2001-01-01 Kazu Hirata <kazu@hxi.com>
|
2001-01-01 Kazu Hirata <kazu@hxi.com>
|
||||||
|
|
||||||
* reloc.c: Fix formatting.
|
* reloc.c: Fix formatting.
|
||||||
|
@ -33,7 +33,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
#define N_HEADER_IN_TEXT(x) 1
|
#define N_HEADER_IN_TEXT(x) 1
|
||||||
#define N_TXTSIZE(x) ((x).a_text)
|
#define N_TXTSIZE(x) ((x).a_text)
|
||||||
|
|
||||||
|
|
||||||
#define TEXT_START_ADDR 0x10000 /* from old ld */
|
#define TEXT_START_ADDR 0x10000 /* from old ld */
|
||||||
#define TARGET_PAGE_SIZE 0x1000 /* from old ld, 032 & 532 are really 512/4k */
|
#define TARGET_PAGE_SIZE 0x1000 /* from old ld, 032 & 532 are really 512/4k */
|
||||||
|
|
||||||
@ -49,7 +48,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
#define N_SHARED_LIB(x) 0
|
#define N_SHARED_LIB(x) 0
|
||||||
#define SEGMENT_SIZE TARGET_PAGE_SIZE
|
#define SEGMENT_SIZE TARGET_PAGE_SIZE
|
||||||
#define DEFAULT_ARCH bfd_arch_ns32k
|
#define DEFAULT_ARCH bfd_arch_ns32k
|
||||||
|
|
||||||
#define MY(OP) CAT(pc532machaout_,OP)
|
#define MY(OP) CAT(pc532machaout_,OP)
|
||||||
|
|
||||||
/* Must be the same as aout-ns32k.c */
|
/* Must be the same as aout-ns32k.c */
|
||||||
@ -67,14 +66,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
|
|
||||||
#define MY_bfd_reloc_type_lookup ns32kaout_bfd_reloc_type_lookup
|
#define MY_bfd_reloc_type_lookup ns32kaout_bfd_reloc_type_lookup
|
||||||
|
|
||||||
/* libaout doesn't use NAME for these ... */
|
/* libaout doesn't use NAME for these ... */
|
||||||
|
|
||||||
#define MY_get_section_contents aout_32_get_section_contents
|
#define MY_get_section_contents aout_32_get_section_contents
|
||||||
|
|
||||||
#define MY_text_includes_header 1
|
#define MY_text_includes_header 1
|
||||||
|
|
||||||
#define MY_exec_header_not_counted 1
|
#define MY_exec_header_not_counted 1
|
||||||
|
|
||||||
#define MYNSX(OP) CAT(ns32kaout_,OP)
|
#define MYNSX(OP) CAT(ns32kaout_,OP)
|
||||||
reloc_howto_type *
|
reloc_howto_type *
|
||||||
MYNSX(bfd_reloc_type_lookup)
|
MYNSX(bfd_reloc_type_lookup)
|
||||||
@ -91,9 +90,9 @@ bfd *abfd;
|
|||||||
{
|
{
|
||||||
struct external_exec exec_bytes;
|
struct external_exec exec_bytes;
|
||||||
struct internal_exec *execp = exec_hdr (abfd);
|
struct internal_exec *execp = exec_hdr (abfd);
|
||||||
|
|
||||||
obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
|
obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
|
||||||
|
|
||||||
BFD_ASSERT (bfd_get_arch (abfd) == bfd_arch_ns32k);
|
BFD_ASSERT (bfd_get_arch (abfd) == bfd_arch_ns32k);
|
||||||
switch (bfd_get_mach (abfd))
|
switch (bfd_get_mach (abfd))
|
||||||
{
|
{
|
||||||
@ -106,9 +105,9 @@ bfd *abfd;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
N_SET_FLAGS (*execp, aout_backend_info (abfd)->exec_hdr_flags);
|
N_SET_FLAGS (*execp, aout_backend_info (abfd)->exec_hdr_flags);
|
||||||
|
|
||||||
WRITE_HEADERS(abfd, execp);
|
WRITE_HEADERS(abfd, execp);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
#define PCRELOFFSET true
|
#define PCRELOFFSET true
|
||||||
#define COFF_LONG_SECTION_NAMES
|
#define COFF_LONG_SECTION_NAMES
|
||||||
|
|
||||||
#ifndef bfd_arm_allocate_interworking_sections
|
#ifndef bfd_arm_allocate_interworking_sections
|
||||||
#define bfd_arm_allocate_interworking_sections \
|
#define bfd_arm_allocate_interworking_sections \
|
||||||
bfd_arm_pe_allocate_interworking_sections
|
bfd_arm_pe_allocate_interworking_sections
|
||||||
#define bfd_arm_get_bfd_for_interworking \
|
#define bfd_arm_get_bfd_for_interworking \
|
||||||
@ -39,7 +39,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
#define bfd_arm_process_before_allocation \
|
#define bfd_arm_process_before_allocation \
|
||||||
bfd_arm_pe_process_before_allocation
|
bfd_arm_pe_process_before_allocation
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ARM_WINCE
|
#ifdef ARM_WINCE
|
||||||
#define TARGET_UNDERSCORE 0
|
#define TARGET_UNDERSCORE 0
|
||||||
#endif
|
#endif
|
||||||
|
@ -20,7 +20,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
#include "sysdep.h"
|
#include "sysdep.h"
|
||||||
|
|
||||||
|
|
||||||
#define TARGET_SYM i386pe_vec
|
#define TARGET_SYM i386pe_vec
|
||||||
#define TARGET_NAME "pe-i386"
|
#define TARGET_NAME "pe-i386"
|
||||||
#define COFF_WITH_PE
|
#define COFF_WITH_PE
|
||||||
|
@ -34,7 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
|
|
||||||
#include "libcoff.h"
|
#include "libcoff.h"
|
||||||
|
|
||||||
static bfd_reloc_status_type coff_mips_reloc
|
static bfd_reloc_status_type coff_mips_reloc
|
||||||
PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
|
||||||
static reloc_howto_type *coff_mips_rtype_to_howto
|
static reloc_howto_type *coff_mips_rtype_to_howto
|
||||||
PARAMS ((bfd *, asection *, struct internal_reloc *,
|
PARAMS ((bfd *, asection *, struct internal_reloc *,
|
||||||
@ -166,21 +166,21 @@ coff_mips_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
|
|||||||
|
|
||||||
#ifdef COFF_WITH_PE
|
#ifdef COFF_WITH_PE
|
||||||
/* Return true if this relocation should
|
/* Return true if this relocation should
|
||||||
appear in the output .reloc section. */
|
appear in the output .reloc section. */
|
||||||
|
|
||||||
static boolean in_reloc_p(abfd, howto)
|
static boolean in_reloc_p(abfd, howto)
|
||||||
bfd * abfd ATTRIBUTE_UNUSED;
|
bfd * abfd ATTRIBUTE_UNUSED;
|
||||||
reloc_howto_type *howto;
|
reloc_howto_type *howto;
|
||||||
{
|
{
|
||||||
return ! howto->pc_relative && howto->type != MIPS_R_RVA;
|
return ! howto->pc_relative && howto->type != MIPS_R_RVA;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PCRELOFFSET
|
#ifndef PCRELOFFSET
|
||||||
#define PCRELOFFSET false
|
#define PCRELOFFSET false
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static reloc_howto_type howto_table[] =
|
static reloc_howto_type howto_table[] =
|
||||||
{
|
{
|
||||||
/* Reloc type 0 is ignored. The reloc reading code ensures that
|
/* Reloc type 0 is ignored. The reloc reading code ensures that
|
||||||
this is a reference to the .abs section, which will cause
|
this is a reference to the .abs section, which will cause
|
||||||
@ -336,33 +336,33 @@ static reloc_howto_type howto_table[] =
|
|||||||
EMPTY_HOWTO (31),
|
EMPTY_HOWTO (31),
|
||||||
EMPTY_HOWTO (32),
|
EMPTY_HOWTO (32),
|
||||||
EMPTY_HOWTO (33),
|
EMPTY_HOWTO (33),
|
||||||
HOWTO (MIPS_R_RVA, /* type */
|
HOWTO (MIPS_R_RVA, /* type */
|
||||||
0, /* rightshift */
|
0, /* rightshift */
|
||||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||||
32, /* bitsize */
|
32, /* bitsize */
|
||||||
false, /* pc_relative */
|
false, /* pc_relative */
|
||||||
0, /* bitpos */
|
0, /* bitpos */
|
||||||
complain_overflow_bitfield, /* complain_on_overflow */
|
complain_overflow_bitfield, /* complain_on_overflow */
|
||||||
coff_mips_reloc, /* special_function */
|
coff_mips_reloc, /* special_function */
|
||||||
"rva32", /* name */
|
"rva32", /* name */
|
||||||
true, /* partial_inplace */
|
true, /* partial_inplace */
|
||||||
0xffffffff, /* src_mask */
|
0xffffffff, /* src_mask */
|
||||||
0xffffffff, /* dst_mask */
|
0xffffffff, /* dst_mask */
|
||||||
false), /* pcrel_offset */
|
false), /* pcrel_offset */
|
||||||
EMPTY_HOWTO (35),
|
EMPTY_HOWTO (35),
|
||||||
EMPTY_HOWTO (36),
|
EMPTY_HOWTO (36),
|
||||||
HOWTO (MIPS_R_PAIR, /* type */
|
HOWTO (MIPS_R_PAIR, /* type */
|
||||||
0, /* rightshift */
|
0, /* rightshift */
|
||||||
2, /* size (0 = byte, 1 = short, 2 = long) */
|
2, /* size (0 = byte, 1 = short, 2 = long) */
|
||||||
32, /* bitsize */
|
32, /* bitsize */
|
||||||
false, /* pc_relative */
|
false, /* pc_relative */
|
||||||
0, /* bitpos */
|
0, /* bitpos */
|
||||||
complain_overflow_bitfield, /* complain_on_overflow */
|
complain_overflow_bitfield, /* complain_on_overflow */
|
||||||
coff_mips_reloc, /* special_function */
|
coff_mips_reloc, /* special_function */
|
||||||
"PAIR", /* name */
|
"PAIR", /* name */
|
||||||
true, /* partial_inplace */
|
true, /* partial_inplace */
|
||||||
0xffffffff, /* src_mask */
|
0xffffffff, /* src_mask */
|
||||||
0xffffffff, /* dst_mask */
|
0xffffffff, /* dst_mask */
|
||||||
false), /* pcrel_offset */
|
false), /* pcrel_offset */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -408,7 +408,6 @@ static reloc_howto_type howto_table[] =
|
|||||||
cache_ptr->addend += asect->vma; \
|
cache_ptr->addend += asect->vma; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Convert an rtype to howto for the COFF backend linker. */
|
/* Convert an rtype to howto for the COFF backend linker. */
|
||||||
|
|
||||||
static reloc_howto_type *
|
static reloc_howto_type *
|
||||||
@ -439,7 +438,7 @@ coff_mips_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
|
|||||||
function will be adding in the final value of the symbol. We
|
function will be adding in the final value of the symbol. We
|
||||||
need to subtract out the current size in order to get the
|
need to subtract out the current size in order to get the
|
||||||
correct result. */
|
correct result. */
|
||||||
|
|
||||||
BFD_ASSERT (h != NULL);
|
BFD_ASSERT (h != NULL);
|
||||||
|
|
||||||
#ifndef COFF_WITH_PE
|
#ifndef COFF_WITH_PE
|
||||||
@ -458,7 +457,7 @@ coff_mips_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
|
|||||||
/* If the output symbol is common (in which case this must be a
|
/* If the output symbol is common (in which case this must be a
|
||||||
relocateable link), we need to add in the final size of the
|
relocateable link), we need to add in the final size of the
|
||||||
common symbol. */
|
common symbol. */
|
||||||
if (h != NULL && h->root.type == bfd_link_hash_common)
|
if (h != NULL && h->root.type == bfd_link_hash_common)
|
||||||
*addendp += h->root.u.c.size;
|
*addendp += h->root.u.c.size;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -488,11 +487,8 @@ coff_mips_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
|
|||||||
|
|
||||||
#define coff_rtype_to_howto coff_mips_rtype_to_howto
|
#define coff_rtype_to_howto coff_mips_rtype_to_howto
|
||||||
|
|
||||||
|
|
||||||
#define coff_bfd_reloc_type_lookup coff_mips_reloc_type_lookup
|
#define coff_bfd_reloc_type_lookup coff_mips_reloc_type_lookup
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Get the howto structure for a generic reloc type. */
|
/* Get the howto structure for a generic reloc type. */
|
||||||
|
|
||||||
static reloc_howto_type *
|
static reloc_howto_type *
|
||||||
@ -577,7 +573,7 @@ mips_swap_reloc_in (abfd, src, dst)
|
|||||||
reloc_dst->r_offset = reloc_dst->r_symndx;
|
reloc_dst->r_offset = reloc_dst->r_symndx;
|
||||||
if (reloc_dst->r_offset & 0x8000)
|
if (reloc_dst->r_offset & 0x8000)
|
||||||
reloc_dst->r_offset -= 0x10000;
|
reloc_dst->r_offset -= 0x10000;
|
||||||
/*printf("dj: pair offset is %08x\n", reloc_dst->r_offset);*/
|
/*printf ("dj: pair offset is %08x\n", reloc_dst->r_offset);*/
|
||||||
reloc_dst->r_symndx = pair_prev.r_symndx;
|
reloc_dst->r_symndx = pair_prev.r_symndx;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -654,7 +650,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
|
|
||||||
if (info->relocateable)
|
if (info->relocateable)
|
||||||
{
|
{
|
||||||
(*_bfd_error_handler)(_("\
|
(*_bfd_error_handler) (_("\
|
||||||
%s: `ld -r' not supported with PE MIPS objects\n"),
|
%s: `ld -r' not supported with PE MIPS objects\n"),
|
||||||
bfd_get_filename (input_bfd));
|
bfd_get_filename (input_bfd));
|
||||||
bfd_set_error (bfd_error_bad_value);
|
bfd_set_error (bfd_error_bad_value);
|
||||||
@ -665,7 +661,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
== output_bfd->xvec->byteorder);
|
== output_bfd->xvec->byteorder);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
printf("dj: relocate %s(%s) %08x\n",
|
printf ("dj: relocate %s(%s) %08x\n",
|
||||||
input_bfd->filename, input_section->name,
|
input_bfd->filename, input_section->name,
|
||||||
input_section->output_section->vma + input_section->output_offset);
|
input_section->output_section->vma + input_section->output_offset);
|
||||||
#endif
|
#endif
|
||||||
@ -700,7 +696,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
sym = NULL;
|
sym = NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
h = obj_coff_sym_hashes (input_bfd)[symndx];
|
h = obj_coff_sym_hashes (input_bfd)[symndx];
|
||||||
sym = syms + symndx;
|
sym = syms + symndx;
|
||||||
}
|
}
|
||||||
@ -715,7 +711,6 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
else
|
else
|
||||||
addend = 0;
|
addend = 0;
|
||||||
|
|
||||||
|
|
||||||
howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h,
|
howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h,
|
||||||
sym, &addend);
|
sym, &addend);
|
||||||
if (howto == NULL)
|
if (howto == NULL)
|
||||||
@ -779,7 +774,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
src = rel->r_vaddr + input_section->output_section->vma
|
src = rel->r_vaddr + input_section->output_section->vma
|
||||||
+ input_section->output_offset;
|
+ input_section->output_offset;
|
||||||
#if 0
|
#if 0
|
||||||
printf("dj: reloc %02x %-8s a=%08x/%08x(%08x) v=%08x+%08x %s\n",
|
printf ("dj: reloc %02x %-8s a=%08x/%08x(%08x) v=%08x+%08x %s\n",
|
||||||
rel->r_type, howto_table[rel->r_type].name,
|
rel->r_type, howto_table[rel->r_type].name,
|
||||||
src, rel->r_vaddr, *(unsigned long *)mem, val, rel->r_offset,
|
src, rel->r_vaddr, *(unsigned long *)mem, val, rel->r_offset,
|
||||||
h?h->root.root.string:"(none)");
|
h?h->root.root.string:"(none)");
|
||||||
@ -791,7 +786,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
val = VMA of what we need to refer to
|
val = VMA of what we need to refer to
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define UI(x) (*_bfd_error_handler)(_("%s: unimplemented %s\n"), \
|
#define UI(x) (*_bfd_error_handler) (_("%s: unimplemented %s\n"), \
|
||||||
bfd_get_filename (input_bfd), x); \
|
bfd_get_filename (input_bfd), x); \
|
||||||
bfd_set_error (bfd_error_bad_value);
|
bfd_set_error (bfd_error_bad_value);
|
||||||
|
|
||||||
@ -807,7 +802,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
|
|
||||||
case MIPS_R_REFWORD:
|
case MIPS_R_REFWORD:
|
||||||
tmp = bfd_get_32(input_bfd, mem);
|
tmp = bfd_get_32(input_bfd, mem);
|
||||||
/* printf("refword: src=%08x targ=%08x+%08x\n", src, tmp, val); */
|
/* printf ("refword: src=%08x targ=%08x+%08x\n", src, tmp, val); */
|
||||||
tmp += val;
|
tmp += val;
|
||||||
bfd_put_32(input_bfd, tmp, mem);
|
bfd_put_32(input_bfd, tmp, mem);
|
||||||
break;
|
break;
|
||||||
@ -817,7 +812,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
targ = val + (tmp&0x03ffffff)*4;
|
targ = val + (tmp&0x03ffffff)*4;
|
||||||
if ((src & 0xf0000000) != (targ & 0xf0000000))
|
if ((src & 0xf0000000) != (targ & 0xf0000000))
|
||||||
{
|
{
|
||||||
(*_bfd_error_handler)(_("%s: jump too far away\n"),
|
(*_bfd_error_handler) (_("%s: jump too far away\n"),
|
||||||
bfd_get_filename (input_bfd));
|
bfd_get_filename (input_bfd));
|
||||||
bfd_set_error (bfd_error_bad_value);
|
bfd_set_error (bfd_error_bad_value);
|
||||||
return false;
|
return false;
|
||||||
@ -844,7 +839,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
targ = val + low + ((tmp & 0xffff) << 16);
|
targ = val + low + ((tmp & 0xffff) << 16);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
(*_bfd_error_handler)(_("%s: bad pair/reflo after refhi\n"),
|
(*_bfd_error_handler) (_("%s: bad pair/reflo after refhi\n"),
|
||||||
bfd_get_filename (input_bfd));
|
bfd_get_filename (input_bfd));
|
||||||
bfd_set_error (bfd_error_bad_value);
|
bfd_set_error (bfd_error_bad_value);
|
||||||
return false;
|
return false;
|
||||||
@ -857,7 +852,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
case MIPS_R_REFLO:
|
case MIPS_R_REFLO:
|
||||||
tmp = bfd_get_32(input_bfd, mem);
|
tmp = bfd_get_32(input_bfd, mem);
|
||||||
targ = val + (tmp & 0xffff);
|
targ = val + (tmp & 0xffff);
|
||||||
/* printf("refword: src=%08x targ=%08x\n", src, targ); */
|
/* printf ("refword: src=%08x targ=%08x\n", src, targ); */
|
||||||
tmp &= 0xffff0000;
|
tmp &= 0xffff0000;
|
||||||
tmp |= targ & 0xffff;
|
tmp |= targ & 0xffff;
|
||||||
bfd_put_32(input_bfd, tmp, mem);
|
bfd_put_32(input_bfd, tmp, mem);
|
||||||
@ -886,7 +881,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
|
|||||||
|
|
||||||
case MIPS_R_RVA:
|
case MIPS_R_RVA:
|
||||||
tmp = bfd_get_32 (input_bfd, mem);
|
tmp = bfd_get_32 (input_bfd, mem);
|
||||||
/* printf("rva: src=%08x targ=%08x+%08x\n", src, tmp, val); */
|
/* printf ("rva: src=%08x targ=%08x+%08x\n", src, tmp, val); */
|
||||||
tmp += val
|
tmp += val
|
||||||
- pe_data (input_section->output_section->owner)->pe_opthdr.ImageBase;
|
- pe_data (input_section->output_section->owner)->pe_opthdr.ImageBase;
|
||||||
bfd_put_32 (input_bfd, tmp, mem);
|
bfd_put_32 (input_bfd, tmp, mem);
|
||||||
@ -974,7 +969,7 @@ const bfd_target
|
|||||||
bfd_getl32, bfd_getl_signed_32, bfd_putl32,
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32,
|
||||||
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */
|
||||||
|
|
||||||
/* Note that we allow an object file to be treated as a core file as well. */
|
/* Note that we allow an object file to be treated as a core file as well. */
|
||||||
{_bfd_dummy_target, coff_object_p, /* bfd_check_format */
|
{_bfd_dummy_target, coff_object_p, /* bfd_check_format */
|
||||||
bfd_generic_archive_p, coff_object_p},
|
bfd_generic_archive_p, coff_object_p},
|
||||||
{bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */
|
{bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */
|
||||||
@ -993,6 +988,6 @@ const bfd_target
|
|||||||
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
||||||
|
|
||||||
NULL,
|
NULL,
|
||||||
|
|
||||||
COFF_SWAP_TABLE
|
COFF_SWAP_TABLE
|
||||||
};
|
};
|
||||||
|
@ -21,7 +21,6 @@ Boston, MA 02111-1307, USA. */
|
|||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
#include "sysdep.h"
|
#include "sysdep.h"
|
||||||
|
|
||||||
|
|
||||||
#define E_FILENMLEN 18
|
#define E_FILENMLEN 18
|
||||||
|
|
||||||
#define PPC_PE
|
#define PPC_PE
|
||||||
|
@ -20,7 +20,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
#include "sysdep.h"
|
#include "sysdep.h"
|
||||||
|
|
||||||
|
|
||||||
#define TARGET_SHL_SYM shlpe_vec
|
#define TARGET_SHL_SYM shlpe_vec
|
||||||
#define TARGET_SHL_NAME "pe-shl"
|
#define TARGET_SHL_NAME "pe-shl"
|
||||||
#define COFF_WITH_PE
|
#define COFF_WITH_PE
|
||||||
|
@ -28,5 +28,3 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
|
|
||||||
#include "pe-mips.c"
|
#include "pe-mips.c"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,5 +31,3 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
|
|
||||||
#include "coff-sh.c"
|
#include "coff-sh.c"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ ppcboot_get_section_contents (abfd, section, location, offset, count)
|
|||||||
file_ptr offset;
|
file_ptr offset;
|
||||||
bfd_size_type count;
|
bfd_size_type count;
|
||||||
{
|
{
|
||||||
if (bfd_seek (abfd, offset + sizeof(ppcboot_hdr_t), SEEK_SET) != 0
|
if (bfd_seek (abfd, offset + sizeof (ppcboot_hdr_t), SEEK_SET) != 0
|
||||||
|| bfd_read (location, 1, count, abfd) != count)
|
|| bfd_read (location, 1, count, abfd) != count)
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
@ -536,6 +536,6 @@ const bfd_target ppcboot_vec =
|
|||||||
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
||||||
|
|
||||||
NULL,
|
NULL,
|
||||||
|
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
@ -32,7 +32,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <sys/ptrace.h>
|
#include <sys/ptrace.h>
|
||||||
|
|
||||||
|
|
||||||
struct trad_core_struct
|
struct trad_core_struct
|
||||||
{
|
{
|
||||||
asection *data_section;
|
asection *data_section;
|
||||||
@ -66,7 +65,7 @@ ptrace_unix_core_file_p (abfd)
|
|||||||
struct trad_core_struct *rawptr;
|
struct trad_core_struct *rawptr;
|
||||||
|
|
||||||
val = bfd_read ((void *)&u, 1, sizeof u, abfd);
|
val = bfd_read ((void *)&u, 1, sizeof u, abfd);
|
||||||
if (val != sizeof u || u.pt_magic != _BCS_PTRACE_MAGIC
|
if (val != sizeof u || u.pt_magic != _BCS_PTRACE_MAGIC
|
||||||
|| u.pt_rev != _BCS_PTRACE_REV)
|
|| u.pt_rev != _BCS_PTRACE_REV)
|
||||||
{
|
{
|
||||||
/* Too small to be a core file */
|
/* Too small to be a core file */
|
||||||
@ -83,7 +82,7 @@ ptrace_unix_core_file_p (abfd)
|
|||||||
|
|
||||||
if (rawptr == NULL)
|
if (rawptr == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
abfd->tdata.trad_core_data = rawptr;
|
abfd->tdata.trad_core_data = rawptr;
|
||||||
|
|
||||||
rawptr->u = u; /*Copy the uarea into the tdata part of the bfd */
|
rawptr->u = u; /*Copy the uarea into the tdata part of the bfd */
|
||||||
@ -107,8 +106,7 @@ ptrace_unix_core_file_p (abfd)
|
|||||||
|
|
||||||
/* FIXME: Need to worry about shared memory, library data, and library
|
/* FIXME: Need to worry about shared memory, library data, and library
|
||||||
text. I don't think that any of these things are supported on the
|
text. I don't think that any of these things are supported on the
|
||||||
system on which I am developing this for though. */
|
system on which I am developing this for though. */
|
||||||
|
|
||||||
|
|
||||||
core_stacksec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
|
core_stacksec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
|
||||||
core_datasec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
|
core_datasec (abfd)->flags = SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS;
|
||||||
@ -116,11 +114,11 @@ ptrace_unix_core_file_p (abfd)
|
|||||||
|
|
||||||
core_datasec (abfd)->_raw_size = u.pt_dsize;
|
core_datasec (abfd)->_raw_size = u.pt_dsize;
|
||||||
core_stacksec (abfd)->_raw_size = u.pt_ssize;
|
core_stacksec (abfd)->_raw_size = u.pt_ssize;
|
||||||
core_regsec (abfd)->_raw_size = sizeof(u);
|
core_regsec (abfd)->_raw_size = sizeof (u);
|
||||||
|
|
||||||
core_datasec (abfd)->vma = u.pt_o_data_start;
|
core_datasec (abfd)->vma = u.pt_o_data_start;
|
||||||
core_stacksec (abfd)->vma = USRSTACK - u.pt_ssize;
|
core_stacksec (abfd)->vma = USRSTACK - u.pt_ssize;
|
||||||
core_regsec (abfd)->vma = 0 - sizeof(u); /* see trad-core.c */
|
core_regsec (abfd)->vma = 0 - sizeof (u); /* see trad-core.c */
|
||||||
|
|
||||||
core_datasec (abfd)->filepos = (int) u.pt_dataptr;
|
core_datasec (abfd)->filepos = (int) u.pt_dataptr;
|
||||||
core_stacksec (abfd)->filepos = (int) (u.pt_dataptr + u.pt_dsize);
|
core_stacksec (abfd)->filepos = (int) (u.pt_dataptr + u.pt_dsize);
|
||||||
@ -163,16 +161,16 @@ boolean
|
|||||||
ptrace_unix_core_file_matches_executable_p (core_bfd, exec_bfd)
|
ptrace_unix_core_file_matches_executable_p (core_bfd, exec_bfd)
|
||||||
bfd *core_bfd, *exec_bfd;
|
bfd *core_bfd, *exec_bfd;
|
||||||
{
|
{
|
||||||
/* FIXME: Use pt_timdat field of the ptrace_user structure to match
|
/* FIXME: Use pt_timdat field of the ptrace_user structure to match
|
||||||
the date of the executable */
|
the date of the executable */
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If somebody calls any byte-swapping routines, shoot them. */
|
/* If somebody calls any byte-swapping routines, shoot them. */
|
||||||
static void
|
static void
|
||||||
swap_abort()
|
swap_abort ()
|
||||||
{
|
{
|
||||||
abort(); /* This way doesn't require any declaration for ANSI to fuck up */
|
abort (); /* This way doesn't require any declaration for ANSI to fuck up */
|
||||||
}
|
}
|
||||||
#define NO_GET ((bfd_vma (*) PARAMS (( const bfd_byte *))) swap_abort )
|
#define NO_GET ((bfd_vma (*) PARAMS (( const bfd_byte *))) swap_abort )
|
||||||
#define NO_PUT ((void (*) PARAMS ((bfd_vma, bfd_byte *))) swap_abort )
|
#define NO_PUT ((void (*) PARAMS ((bfd_vma, bfd_byte *))) swap_abort )
|
||||||
@ -213,7 +211,7 @@ const bfd_target ptrace_core_vec =
|
|||||||
bfd_false, bfd_false,
|
bfd_false, bfd_false,
|
||||||
bfd_false, bfd_false
|
bfd_false, bfd_false
|
||||||
},
|
},
|
||||||
|
|
||||||
BFD_JUMP_TABLE_GENERIC (_bfd_generic),
|
BFD_JUMP_TABLE_GENERIC (_bfd_generic),
|
||||||
BFD_JUMP_TABLE_COPY (_bfd_generic),
|
BFD_JUMP_TABLE_COPY (_bfd_generic),
|
||||||
BFD_JUMP_TABLE_CORE (ptrace_unix),
|
BFD_JUMP_TABLE_CORE (ptrace_unix),
|
||||||
@ -225,7 +223,7 @@ const bfd_target ptrace_core_vec =
|
|||||||
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
||||||
|
|
||||||
NULL,
|
NULL,
|
||||||
|
|
||||||
(PTR) 0 /* backend_data */
|
(PTR) 0 /* backend_data */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user