include/
* xtensa-isa-internal.h (xtensa_length_decode_fn): Warning fix. * xtensa-isa.h (xtensa_insnbuf_to_chars): Likewise. (xtensa_insnbuf_from_chars, xtensa_isa_length_from_chars): Likewise. include/coff/ * xcoff.h (struct xcoff_loader_info): Warning fix. bfd/ * bfd-in.h (bfd_elf_bfd_from_remote_memory): Warning fix. * coff-m68k.c (bfd_m68k_coff_create_embedded_relocs): Likewise. * coff-rs6000.c (xcoff_write_armap_big): Warning fixes. Remove useless assignments. (xcoff_write_archive_contents_big): Likewise. (_bfd_xcoff_put_ldsymbol_name): Likewise. * coff64-rs6000.c (_bfd_xcoff64_put_ldsymbol_name): Likewise. * coffgen.c (coff_write_symbols): Make "written" a bfd_vma. * cofflink.c (process_embedded_commands): Warning fixes. * cpu-arm.c: Delete unnecessary prototypes. Convert to C90. Warning fixes. * dwarf2.c: Warning fixes. * elf-bfd.h: Likewise. * elf-eh-frame.c: Likewise. * elf-strtab.c: Likewise. * elf.c: Likewise. * elf32-m68k.c: Likewise. * elf32-ppc.c: Likewise. * elf32-sh-symbian.c: Likewise. * elf32-sh.c: Delete unnecessary prototypes. Warning fixes. * elf64-sh64.c: Likewise. * peicode.h: Likewise. * elf64-mmix.c: Warning fixes. * elfcode.h: Likewise. * elfxx-mips.c: Likewise. * libbfd-in.h: Likewise. * libbfd.c: Likewise. * mach-o.c: Likewise. * merge.c: Likewise. * mmo.c: Likewise. * opncls.c: Likewise. * pef.c: Likewise. * srec.c: Likewise. * vms-hdr.c: Likewise. * vms-tir.c: Likewise. * xtensa-isa.c: Likewise. * xtensa-modules.c: Likewise. * xsym.c: Likewise. (pstrcmp): Use correct choice of string lengths. Fix return value. (bfd_sym_module_name): Correct string length. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate.
This commit is contained in:
parent
a6c442d881
commit
f075ee0c61
42 changed files with 325 additions and 410 deletions
|
@ -1,3 +1,52 @@
|
||||||
|
2005-02-21 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* bfd-in.h (bfd_elf_bfd_from_remote_memory): Warning fix.
|
||||||
|
* coff-m68k.c (bfd_m68k_coff_create_embedded_relocs): Likewise.
|
||||||
|
* coff-rs6000.c (xcoff_write_armap_big): Warning fixes. Remove
|
||||||
|
useless assignments.
|
||||||
|
(xcoff_write_archive_contents_big): Likewise.
|
||||||
|
(_bfd_xcoff_put_ldsymbol_name): Likewise.
|
||||||
|
* coff64-rs6000.c (_bfd_xcoff64_put_ldsymbol_name): Likewise.
|
||||||
|
* coffgen.c (coff_write_symbols): Make "written" a bfd_vma.
|
||||||
|
* cofflink.c (process_embedded_commands): Warning fixes.
|
||||||
|
* cpu-arm.c: Delete unnecessary prototypes. Convert to C90.
|
||||||
|
Warning fixes.
|
||||||
|
* dwarf2.c: Warning fixes.
|
||||||
|
* elf-bfd.h: Likewise.
|
||||||
|
* elf-eh-frame.c: Likewise.
|
||||||
|
* elf-strtab.c: Likewise.
|
||||||
|
* elf.c: Likewise.
|
||||||
|
* elf32-m68k.c: Likewise.
|
||||||
|
* elf32-ppc.c: Likewise.
|
||||||
|
* elf32-sh-symbian.c: Likewise.
|
||||||
|
* elf32-sh.c: Delete unnecessary prototypes. Warning fixes.
|
||||||
|
* elf64-sh64.c: Likewise.
|
||||||
|
* peicode.h: Likewise.
|
||||||
|
* elf64-mmix.c: Warning fixes.
|
||||||
|
* elfcode.h: Likewise.
|
||||||
|
* elfxx-mips.c: Likewise.
|
||||||
|
* libbfd-in.h: Likewise.
|
||||||
|
* libbfd.c: Likewise.
|
||||||
|
* mach-o.c: Likewise.
|
||||||
|
* merge.c: Likewise.
|
||||||
|
* mmo.c: Likewise.
|
||||||
|
* opncls.c: Likewise.
|
||||||
|
* pef.c: Likewise.
|
||||||
|
* srec.c: Likewise.
|
||||||
|
* vms-hdr.c: Likewise.
|
||||||
|
* vms-tir.c: Likewise.
|
||||||
|
* xtensa-isa.c: Likewise.
|
||||||
|
* xtensa-modules.c: Likewise.
|
||||||
|
* xsym.c: Likewise.
|
||||||
|
(pstrcmp): Use correct choice of string lengths. Fix return value.
|
||||||
|
(bfd_sym_module_name): Correct string length.
|
||||||
|
* bfd-in2.h: Regenerate.
|
||||||
|
* libbfd.h: Regenerate.
|
||||||
|
|
||||||
|
2005-02-18 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* coffgen.c (coff_write_symbols): Make "written" a bfd_vma.
|
||||||
|
|
||||||
2005-02-17 Alexandre Oliva <aoliva@redhat.com>
|
2005-02-17 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
* elf32-frv.c (elf32_frv_relocate_section): Remove warning from
|
* elf32-frv.c (elf32_frv_relocate_section): Remove warning from
|
||||||
|
|
|
@ -681,7 +681,7 @@ extern int bfd_get_elf_phdrs
|
||||||
the remote memory. */
|
the remote memory. */
|
||||||
extern bfd *bfd_elf_bfd_from_remote_memory
|
extern bfd *bfd_elf_bfd_from_remote_memory
|
||||||
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
||||||
int (*target_read_memory) (bfd_vma vma, char *myaddr, int len));
|
int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
|
||||||
|
|
||||||
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
|
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
|
||||||
extern int bfd_get_arch_size
|
extern int bfd_get_arch_size
|
||||||
|
|
|
@ -688,7 +688,7 @@ extern int bfd_get_elf_phdrs
|
||||||
the remote memory. */
|
the remote memory. */
|
||||||
extern bfd *bfd_elf_bfd_from_remote_memory
|
extern bfd *bfd_elf_bfd_from_remote_memory
|
||||||
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
||||||
int (*target_read_memory) (bfd_vma vma, char *myaddr, int len));
|
int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
|
||||||
|
|
||||||
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
|
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
|
||||||
extern int bfd_get_arch_size
|
extern int bfd_get_arch_size
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* BFD back-end for Motorola 68000 COFF binaries.
|
/* BFD back-end for Motorola 68000 COFF binaries.
|
||||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
|
||||||
2000, 2001, 2002, 2003
|
2000, 2001, 2002, 2003, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Written by Cygnus Support.
|
Written by Cygnus Support.
|
||||||
|
|
||||||
|
@ -510,7 +510,7 @@ bfd_m68k_coff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
|
||||||
(irel->r_vaddr - datasec->vma + datasec->output_offset), p);
|
(irel->r_vaddr - datasec->vma + datasec->output_offset), p);
|
||||||
memset (p + 4, 0, 8);
|
memset (p + 4, 0, 8);
|
||||||
if (targetsec != NULL)
|
if (targetsec != NULL)
|
||||||
strncpy (p + 4, targetsec->output_section->name, 8);
|
strncpy ((char *) p + 4, targetsec->output_section->name, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* BFD back-end for IBM RS/6000 "XCOFF" files.
|
/* BFD back-end for IBM RS/6000 "XCOFF" files.
|
||||||
Copyright 1990-1999, 2000, 2001, 2002, 2003, 2004
|
Copyright 1990-1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
FIXME: Can someone provide a transliteration of this name into ASCII?
|
FIXME: Can someone provide a transliteration of this name into ASCII?
|
||||||
Using the following chars caused a compiler warning on HIUX (so I replaced
|
Using the following chars caused a compiler warning on HIUX (so I replaced
|
||||||
|
@ -1849,8 +1849,8 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
|
||||||
if (sym_32)
|
if (sym_32)
|
||||||
{
|
{
|
||||||
struct xcoff_ar_hdr_big *hdr;
|
struct xcoff_ar_hdr_big *hdr;
|
||||||
bfd_byte *symbol_table;
|
char *symbol_table;
|
||||||
bfd_byte *st;
|
char *st;
|
||||||
file_ptr fileoff;
|
file_ptr fileoff;
|
||||||
|
|
||||||
bfd_vma symbol_table_size =
|
bfd_vma symbol_table_size =
|
||||||
|
@ -1860,8 +1860,7 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
|
||||||
+ 8 * sym_32
|
+ 8 * sym_32
|
||||||
+ str_32 + (str_32 & 1);
|
+ str_32 + (str_32 & 1);
|
||||||
|
|
||||||
symbol_table = NULL;
|
symbol_table = bfd_zmalloc (symbol_table_size);
|
||||||
symbol_table = (bfd_byte *) bfd_zmalloc (symbol_table_size);
|
|
||||||
if (symbol_table == NULL)
|
if (symbol_table == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -1941,7 +1940,6 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
|
||||||
bfd_bwrite (symbol_table, symbol_table_size, abfd);
|
bfd_bwrite (symbol_table, symbol_table_size, abfd);
|
||||||
|
|
||||||
free (symbol_table);
|
free (symbol_table);
|
||||||
symbol_table = NULL;
|
|
||||||
|
|
||||||
prevoff = nextoff;
|
prevoff = nextoff;
|
||||||
nextoff = nextoff + symbol_table_size;
|
nextoff = nextoff + symbol_table_size;
|
||||||
|
@ -1952,8 +1950,8 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
|
||||||
if (sym_64)
|
if (sym_64)
|
||||||
{
|
{
|
||||||
struct xcoff_ar_hdr_big *hdr;
|
struct xcoff_ar_hdr_big *hdr;
|
||||||
bfd_byte *symbol_table;
|
char *symbol_table;
|
||||||
bfd_byte *st;
|
char *st;
|
||||||
file_ptr fileoff;
|
file_ptr fileoff;
|
||||||
|
|
||||||
bfd_vma symbol_table_size =
|
bfd_vma symbol_table_size =
|
||||||
|
@ -1963,8 +1961,7 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
|
||||||
+ 8 * sym_64
|
+ 8 * sym_64
|
||||||
+ str_64 + (str_64 & 1);
|
+ str_64 + (str_64 & 1);
|
||||||
|
|
||||||
symbol_table = NULL;
|
symbol_table = bfd_zmalloc (symbol_table_size);
|
||||||
symbol_table = (bfd_byte *) bfd_zmalloc (symbol_table_size);
|
|
||||||
if (symbol_table == NULL)
|
if (symbol_table == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -2039,7 +2036,6 @@ xcoff_write_armap_big (abfd, elength, map, orl_count, stridx)
|
||||||
bfd_bwrite (symbol_table, symbol_table_size, abfd);
|
bfd_bwrite (symbol_table, symbol_table_size, abfd);
|
||||||
|
|
||||||
free (symbol_table);
|
free (symbol_table);
|
||||||
symbol_table = NULL;
|
|
||||||
|
|
||||||
PRINT20 (fhdr->symoff64, nextoff);
|
PRINT20 (fhdr->symoff64, nextoff);
|
||||||
}
|
}
|
||||||
|
@ -2311,7 +2307,7 @@ xcoff_write_archive_contents_big (abfd)
|
||||||
size_t i;
|
size_t i;
|
||||||
struct xcoff_ar_hdr_big *hdr, ahdr;
|
struct xcoff_ar_hdr_big *hdr, ahdr;
|
||||||
bfd_size_type size;
|
bfd_size_type size;
|
||||||
bfd_byte *member_table, *mt;
|
char *member_table, *mt;
|
||||||
bfd_vma member_table_size;
|
bfd_vma member_table_size;
|
||||||
|
|
||||||
memset (&fhdr, 0, SIZEOF_AR_FILE_HDR_BIG);
|
memset (&fhdr, 0, SIZEOF_AR_FILE_HDR_BIG);
|
||||||
|
@ -2476,8 +2472,7 @@ xcoff_write_archive_contents_big (abfd)
|
||||||
+ total_namlen);
|
+ total_namlen);
|
||||||
|
|
||||||
member_table_size += member_table_size & 1;
|
member_table_size += member_table_size & 1;
|
||||||
member_table = NULL;
|
member_table = bfd_zmalloc (member_table_size);
|
||||||
member_table = (bfd_byte *) bfd_zmalloc (member_table_size);
|
|
||||||
if (member_table == NULL)
|
if (member_table == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -2530,7 +2525,6 @@ xcoff_write_archive_contents_big (abfd)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
free (member_table);
|
free (member_table);
|
||||||
member_table = NULL;
|
|
||||||
|
|
||||||
PRINT20 (fhdr.memoff, nextoff);
|
PRINT20 (fhdr.memoff, nextoff);
|
||||||
|
|
||||||
|
@ -3530,7 +3524,7 @@ _bfd_xcoff_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
|
||||||
if (ldinfo->string_size + len + 3 > ldinfo->string_alc)
|
if (ldinfo->string_size + len + 3 > ldinfo->string_alc)
|
||||||
{
|
{
|
||||||
bfd_size_type newalc;
|
bfd_size_type newalc;
|
||||||
bfd_byte *newstrings;
|
char *newstrings;
|
||||||
|
|
||||||
newalc = ldinfo->string_alc * 2;
|
newalc = ldinfo->string_alc * 2;
|
||||||
if (newalc == 0)
|
if (newalc == 0)
|
||||||
|
@ -3538,8 +3532,7 @@ _bfd_xcoff_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
|
||||||
while (ldinfo->string_size + len + 3 > newalc)
|
while (ldinfo->string_size + len + 3 > newalc)
|
||||||
newalc *= 2;
|
newalc *= 2;
|
||||||
|
|
||||||
newstrings = ((bfd_byte *)
|
newstrings = bfd_realloc (ldinfo->strings, newalc);
|
||||||
bfd_realloc ((PTR) ldinfo->strings, newalc));
|
|
||||||
if (newstrings == NULL)
|
if (newstrings == NULL)
|
||||||
{
|
{
|
||||||
ldinfo->failed = TRUE;
|
ldinfo->failed = TRUE;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* BFD back-end for IBM RS/6000 "XCOFF64" files.
|
/* BFD back-end for IBM RS/6000 "XCOFF64" files.
|
||||||
Copyright 2000, 2001, 2002, 2003, 2004
|
Copyright 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Written Clinton Popetz.
|
Written Clinton Popetz.
|
||||||
Contributed by Cygnus Support.
|
Contributed by Cygnus Support.
|
||||||
|
@ -564,7 +564,7 @@ _bfd_xcoff64_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
|
||||||
if (ldinfo->string_size + len + 3 > ldinfo->string_alc)
|
if (ldinfo->string_size + len + 3 > ldinfo->string_alc)
|
||||||
{
|
{
|
||||||
bfd_size_type newalc;
|
bfd_size_type newalc;
|
||||||
bfd_byte *newstrings;
|
char *newstrings;
|
||||||
|
|
||||||
newalc = ldinfo->string_alc * 2;
|
newalc = ldinfo->string_alc * 2;
|
||||||
if (newalc == 0)
|
if (newalc == 0)
|
||||||
|
@ -572,8 +572,7 @@ _bfd_xcoff64_put_ldsymbol_name (abfd, ldinfo, ldsym, name)
|
||||||
while (ldinfo->string_size + len + 3 > newalc)
|
while (ldinfo->string_size + len + 3 > newalc)
|
||||||
newalc *= 2;
|
newalc *= 2;
|
||||||
|
|
||||||
newstrings = ((bfd_byte *)
|
newstrings = bfd_realloc (ldinfo->strings, newalc);
|
||||||
bfd_realloc ((PTR) ldinfo->strings, newalc));
|
|
||||||
if (newstrings == NULL)
|
if (newstrings == NULL)
|
||||||
{
|
{
|
||||||
ldinfo->failed = TRUE;
|
ldinfo->failed = TRUE;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Support for the generic parts of COFF, for BFD.
|
/* Support for the generic parts of COFF, for BFD.
|
||||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
2000, 2001, 2002, 2003, 2004
|
2000, 2001, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Written by Cygnus Support.
|
Written by Cygnus Support.
|
||||||
|
|
||||||
|
@ -1155,7 +1155,7 @@ coff_write_symbols (abfd)
|
||||||
bfd_size_type debug_string_size;
|
bfd_size_type debug_string_size;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
unsigned int limit = bfd_get_symcount (abfd);
|
unsigned int limit = bfd_get_symcount (abfd);
|
||||||
bfd_signed_vma written = 0;
|
bfd_vma written = 0;
|
||||||
asymbol **p;
|
asymbol **p;
|
||||||
|
|
||||||
string_size = 0;
|
string_size = 0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* COFF specific linker code.
|
/* COFF specific linker code.
|
||||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
||||||
2004 Free Software Foundation, Inc.
|
2004, 2005 Free Software Foundation, Inc.
|
||||||
Written by Ian Lance Taylor, Cygnus Support.
|
Written by Ian Lance Taylor, Cygnus Support.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -1221,16 +1221,16 @@ process_embedded_commands (bfd *output_bfd,
|
||||||
free (copy);
|
free (copy);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
e = copy + sec->size;
|
e = (char *) copy + sec->size;
|
||||||
|
|
||||||
for (s = copy; s < e ; )
|
for (s = (char *) copy; s < e ; )
|
||||||
{
|
{
|
||||||
if (s[0]!= '-')
|
if (s[0] != '-')
|
||||||
{
|
{
|
||||||
s++;
|
s++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (strncmp (s,"-attr", 5) == 0)
|
if (strncmp (s, "-attr", 5) == 0)
|
||||||
{
|
{
|
||||||
char *name;
|
char *name;
|
||||||
char *attribs;
|
char *attribs;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* BFD support for the ARM processor
|
/* BFD support for the ARM processor
|
||||||
Copyright 1994, 1997, 1999, 2000, 2002, 2003, 2004
|
Copyright 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
|
Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
|
||||||
|
|
||||||
|
@ -24,21 +24,12 @@
|
||||||
#include "libbfd.h"
|
#include "libbfd.h"
|
||||||
#include "libiberty.h"
|
#include "libiberty.h"
|
||||||
|
|
||||||
static const bfd_arch_info_type * compatible
|
|
||||||
PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *));
|
|
||||||
static bfd_boolean scan
|
|
||||||
PARAMS ((const struct bfd_arch_info *, const char *));
|
|
||||||
static bfd_boolean arm_check_note
|
|
||||||
PARAMS ((bfd *, char *, bfd_size_type, const char *, char **));
|
|
||||||
|
|
||||||
/* This routine is provided two arch_infos and works out which ARM
|
/* This routine is provided two arch_infos and works out which ARM
|
||||||
machine which would be compatible with both and returns a pointer
|
machine which would be compatible with both and returns a pointer
|
||||||
to its info structure. */
|
to its info structure. */
|
||||||
|
|
||||||
static const bfd_arch_info_type *
|
static const bfd_arch_info_type *
|
||||||
compatible (a,b)
|
compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
|
||||||
const bfd_arch_info_type * a;
|
|
||||||
const bfd_arch_info_type * b;
|
|
||||||
{
|
{
|
||||||
/* If a & b are for different architecture we can do nothing. */
|
/* If a & b are for different architecture we can do nothing. */
|
||||||
if (a->arch != b->arch)
|
if (a->arch != b->arch)
|
||||||
|
@ -105,9 +96,7 @@ processors[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
scan (info, string)
|
scan (const struct bfd_arch_info *info, const char *string)
|
||||||
const struct bfd_arch_info * info;
|
|
||||||
const char * string;
|
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -162,9 +151,7 @@ const bfd_arch_info_type bfd_arm_arch =
|
||||||
Returns TRUE if they were merged successfully or FALSE otherwise. */
|
Returns TRUE if they were merged successfully or FALSE otherwise. */
|
||||||
|
|
||||||
bfd_boolean
|
bfd_boolean
|
||||||
bfd_arm_merge_machines (ibfd, obfd)
|
bfd_arm_merge_machines (bfd *ibfd, bfd *obfd)
|
||||||
bfd * ibfd;
|
|
||||||
bfd * obfd;
|
|
||||||
{
|
{
|
||||||
unsigned int in = bfd_get_mach (ibfd);
|
unsigned int in = bfd_get_mach (ibfd);
|
||||||
unsigned int out = bfd_get_mach (obfd);
|
unsigned int out = bfd_get_mach (obfd);
|
||||||
|
@ -226,12 +213,11 @@ typedef struct
|
||||||
} arm_Note;
|
} arm_Note;
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
arm_check_note (abfd, buffer, buffer_size, expected_name, description_return)
|
arm_check_note (bfd *abfd,
|
||||||
bfd * abfd;
|
bfd_byte *buffer,
|
||||||
char * buffer;
|
bfd_size_type buffer_size,
|
||||||
bfd_size_type buffer_size;
|
const char *expected_name,
|
||||||
const char * expected_name;
|
char **description_return)
|
||||||
char ** description_return;
|
|
||||||
{
|
{
|
||||||
unsigned long namesz;
|
unsigned long namesz;
|
||||||
unsigned long descsz;
|
unsigned long descsz;
|
||||||
|
@ -246,7 +232,7 @@ arm_check_note (abfd, buffer, buffer_size, expected_name, description_return)
|
||||||
namesz = bfd_get_32 (abfd, buffer);
|
namesz = bfd_get_32 (abfd, buffer);
|
||||||
descsz = bfd_get_32 (abfd, buffer + offsetof (arm_Note, descsz));
|
descsz = bfd_get_32 (abfd, buffer + offsetof (arm_Note, descsz));
|
||||||
type = bfd_get_32 (abfd, buffer + offsetof (arm_Note, type));
|
type = bfd_get_32 (abfd, buffer + offsetof (arm_Note, type));
|
||||||
descr = buffer + offsetof (arm_Note, name);
|
descr = (char *) buffer + offsetof (arm_Note, name);
|
||||||
|
|
||||||
/* Check for buffer overflow. */
|
/* Check for buffer overflow. */
|
||||||
if (namesz + descsz + offsetof (arm_Note, name) > buffer_size)
|
if (namesz + descsz + offsetof (arm_Note, name) > buffer_size)
|
||||||
|
@ -279,9 +265,7 @@ arm_check_note (abfd, buffer, buffer_size, expected_name, description_return)
|
||||||
#define NOTE_ARCH_STRING "arch: "
|
#define NOTE_ARCH_STRING "arch: "
|
||||||
|
|
||||||
bfd_boolean
|
bfd_boolean
|
||||||
bfd_arm_update_notes (abfd, note_section)
|
bfd_arm_update_notes (bfd *abfd, const char *note_section)
|
||||||
bfd * abfd;
|
|
||||||
const char * note_section;
|
|
||||||
{
|
{
|
||||||
asection * arm_arch_section;
|
asection * arm_arch_section;
|
||||||
bfd_size_type buffer_size;
|
bfd_size_type buffer_size;
|
||||||
|
@ -329,7 +313,9 @@ bfd_arm_update_notes (abfd, note_section)
|
||||||
|
|
||||||
if (strcmp (arch_string, expected) != 0)
|
if (strcmp (arch_string, expected) != 0)
|
||||||
{
|
{
|
||||||
strcpy (buffer + offsetof (arm_Note, name) + ((strlen (NOTE_ARCH_STRING) + 3) & ~3), expected);
|
strcpy ((char *) buffer + (offsetof (arm_Note, name)
|
||||||
|
+ ((strlen (NOTE_ARCH_STRING) + 3) & ~3)),
|
||||||
|
expected);
|
||||||
|
|
||||||
if (! bfd_set_section_contents (abfd, arm_arch_section, buffer,
|
if (! bfd_set_section_contents (abfd, arm_arch_section, buffer,
|
||||||
(file_ptr) 0, buffer_size))
|
(file_ptr) 0, buffer_size))
|
||||||
|
@ -374,9 +360,7 @@ architectures[] =
|
||||||
|
|
||||||
/* Extract the machine number stored in a note section. */
|
/* Extract the machine number stored in a note section. */
|
||||||
unsigned int
|
unsigned int
|
||||||
bfd_arm_get_mach_from_notes (abfd, note_section)
|
bfd_arm_get_mach_from_notes (bfd *abfd, const char *note_section)
|
||||||
bfd * abfd;
|
|
||||||
const char * note_section;
|
|
||||||
{
|
{
|
||||||
asection * arm_arch_section;
|
asection * arm_arch_section;
|
||||||
bfd_size_type buffer_size;
|
bfd_size_type buffer_size;
|
||||||
|
|
118
bfd/dwarf2.c
118
bfd/dwarf2.c
|
@ -1,6 +1,6 @@
|
||||||
/* DWARF 2 support.
|
/* DWARF 2 support.
|
||||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
|
||||||
2004 Free Software Foundation, Inc.
|
2004, 2005 Free Software Foundation, Inc.
|
||||||
|
|
||||||
Adapted from gdb/dwarf2read.c by Gavin Koch of Cygnus Solutions
|
Adapted from gdb/dwarf2read.c by Gavin Koch of Cygnus Solutions
|
||||||
(gavin@cygnus.com).
|
(gavin@cygnus.com).
|
||||||
|
@ -71,44 +71,44 @@ struct attribute
|
||||||
struct dwarf_block
|
struct dwarf_block
|
||||||
{
|
{
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
char *data;
|
bfd_byte *data;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dwarf2_debug
|
struct dwarf2_debug
|
||||||
{
|
{
|
||||||
/* A list of all previously read comp_units. */
|
/* A list of all previously read comp_units. */
|
||||||
struct comp_unit* all_comp_units;
|
struct comp_unit *all_comp_units;
|
||||||
|
|
||||||
/* The next unread compilation unit within the .debug_info section.
|
/* The next unread compilation unit within the .debug_info section.
|
||||||
Zero indicates that the .debug_info section has not been loaded
|
Zero indicates that the .debug_info section has not been loaded
|
||||||
into a buffer yet. */
|
into a buffer yet. */
|
||||||
char* info_ptr;
|
bfd_byte *info_ptr;
|
||||||
|
|
||||||
/* Pointer to the end of the .debug_info section memory buffer. */
|
/* Pointer to the end of the .debug_info section memory buffer. */
|
||||||
char* info_ptr_end;
|
bfd_byte *info_ptr_end;
|
||||||
|
|
||||||
/* Pointer to the section and address of the beginning of the
|
/* Pointer to the section and address of the beginning of the
|
||||||
section. */
|
section. */
|
||||||
asection* sec;
|
asection *sec;
|
||||||
char* sec_info_ptr;
|
bfd_byte *sec_info_ptr;
|
||||||
|
|
||||||
/* Pointer to the symbol table. */
|
/* Pointer to the symbol table. */
|
||||||
asymbol** syms;
|
asymbol **syms;
|
||||||
|
|
||||||
/* Pointer to the .debug_abbrev section loaded into memory. */
|
/* Pointer to the .debug_abbrev section loaded into memory. */
|
||||||
char* dwarf_abbrev_buffer;
|
bfd_byte *dwarf_abbrev_buffer;
|
||||||
|
|
||||||
/* Length of the loaded .debug_abbrev section. */
|
/* Length of the loaded .debug_abbrev section. */
|
||||||
unsigned long dwarf_abbrev_size;
|
unsigned long dwarf_abbrev_size;
|
||||||
|
|
||||||
/* Buffer for decode_line_info. */
|
/* Buffer for decode_line_info. */
|
||||||
char *dwarf_line_buffer;
|
bfd_byte *dwarf_line_buffer;
|
||||||
|
|
||||||
/* Length of the loaded .debug_line section. */
|
/* Length of the loaded .debug_line section. */
|
||||||
unsigned long dwarf_line_size;
|
unsigned long dwarf_line_size;
|
||||||
|
|
||||||
/* Pointer to the .debug_str section loaded into memory. */
|
/* Pointer to the .debug_str section loaded into memory. */
|
||||||
char* dwarf_str_buffer;
|
bfd_byte *dwarf_str_buffer;
|
||||||
|
|
||||||
/* Length of the loaded .debug_str section. */
|
/* Length of the loaded .debug_str section. */
|
||||||
unsigned long dwarf_str_size;
|
unsigned long dwarf_str_size;
|
||||||
|
@ -127,48 +127,48 @@ struct arange
|
||||||
struct comp_unit
|
struct comp_unit
|
||||||
{
|
{
|
||||||
/* Chain the previously read compilation units. */
|
/* Chain the previously read compilation units. */
|
||||||
struct comp_unit* next_unit;
|
struct comp_unit *next_unit;
|
||||||
|
|
||||||
/* Keep the bdf convenient (for memory allocation). */
|
/* Keep the bdf convenient (for memory allocation). */
|
||||||
bfd* abfd;
|
bfd *abfd;
|
||||||
|
|
||||||
/* The lowest and higest addresses contained in this compilation
|
/* The lowest and higest addresses contained in this compilation
|
||||||
unit as specified in the compilation unit header. */
|
unit as specified in the compilation unit header. */
|
||||||
struct arange arange;
|
struct arange arange;
|
||||||
|
|
||||||
/* The DW_AT_name attribute (for error messages). */
|
/* The DW_AT_name attribute (for error messages). */
|
||||||
char* name;
|
char *name;
|
||||||
|
|
||||||
/* The abbrev hash table. */
|
/* The abbrev hash table. */
|
||||||
struct abbrev_info** abbrevs;
|
struct abbrev_info **abbrevs;
|
||||||
|
|
||||||
/* Note that an error was found by comp_unit_find_nearest_line. */
|
/* Note that an error was found by comp_unit_find_nearest_line. */
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
/* The DW_AT_comp_dir attribute. */
|
/* The DW_AT_comp_dir attribute. */
|
||||||
char* comp_dir;
|
char *comp_dir;
|
||||||
|
|
||||||
/* TRUE if there is a line number table associated with this comp. unit. */
|
/* TRUE if there is a line number table associated with this comp. unit. */
|
||||||
int stmtlist;
|
int stmtlist;
|
||||||
|
|
||||||
/* Pointer to the current comp_unit so that we can find a given entry
|
/* Pointer to the current comp_unit so that we can find a given entry
|
||||||
by its reference. */
|
by its reference. */
|
||||||
char *info_ptr_unit;
|
bfd_byte *info_ptr_unit;
|
||||||
|
|
||||||
/* The offset into .debug_line of the line number table. */
|
/* The offset into .debug_line of the line number table. */
|
||||||
unsigned long line_offset;
|
unsigned long line_offset;
|
||||||
|
|
||||||
/* Pointer to the first child die for the comp unit. */
|
/* Pointer to the first child die for the comp unit. */
|
||||||
char *first_child_die_ptr;
|
bfd_byte *first_child_die_ptr;
|
||||||
|
|
||||||
/* The end of the comp unit. */
|
/* The end of the comp unit. */
|
||||||
char *end_ptr;
|
bfd_byte *end_ptr;
|
||||||
|
|
||||||
/* The decoded line number, NULL if not yet decoded. */
|
/* The decoded line number, NULL if not yet decoded. */
|
||||||
struct line_info_table* line_table;
|
struct line_info_table *line_table;
|
||||||
|
|
||||||
/* A list of the functions found in this comp. unit. */
|
/* A list of the functions found in this comp. unit. */
|
||||||
struct funcinfo* function_table;
|
struct funcinfo *function_table;
|
||||||
|
|
||||||
/* Pointer to dwarf2_debug structure. */
|
/* Pointer to dwarf2_debug structure. */
|
||||||
struct dwarf2_debug *stash;
|
struct dwarf2_debug *stash;
|
||||||
|
@ -211,38 +211,38 @@ struct attr_abbrev
|
||||||
/* Read dwarf information from a buffer. */
|
/* Read dwarf information from a buffer. */
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
read_1_byte (bfd *abfd ATTRIBUTE_UNUSED, char *buf)
|
read_1_byte (bfd *abfd ATTRIBUTE_UNUSED, bfd_byte *buf)
|
||||||
{
|
{
|
||||||
return bfd_get_8 (abfd, buf);
|
return bfd_get_8 (abfd, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
read_1_signed_byte (bfd *abfd ATTRIBUTE_UNUSED, char *buf)
|
read_1_signed_byte (bfd *abfd ATTRIBUTE_UNUSED, bfd_byte *buf)
|
||||||
{
|
{
|
||||||
return bfd_get_signed_8 (abfd, buf);
|
return bfd_get_signed_8 (abfd, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
read_2_bytes (bfd *abfd, char *buf)
|
read_2_bytes (bfd *abfd, bfd_byte *buf)
|
||||||
{
|
{
|
||||||
return bfd_get_16 (abfd, buf);
|
return bfd_get_16 (abfd, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
read_4_bytes (bfd *abfd, char *buf)
|
read_4_bytes (bfd *abfd, bfd_byte *buf)
|
||||||
{
|
{
|
||||||
return bfd_get_32 (abfd, buf);
|
return bfd_get_32 (abfd, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bfd_uint64_t
|
static bfd_uint64_t
|
||||||
read_8_bytes (bfd *abfd, char *buf)
|
read_8_bytes (bfd *abfd, bfd_byte *buf)
|
||||||
{
|
{
|
||||||
return bfd_get_64 (abfd, buf);
|
return bfd_get_64 (abfd, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static bfd_byte *
|
||||||
read_n_bytes (bfd *abfd ATTRIBUTE_UNUSED,
|
read_n_bytes (bfd *abfd ATTRIBUTE_UNUSED,
|
||||||
char *buf,
|
bfd_byte *buf,
|
||||||
unsigned int size ATTRIBUTE_UNUSED)
|
unsigned int size ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
/* If the size of a host char is 8 bits, we can return a pointer
|
/* If the size of a host char is 8 bits, we can return a pointer
|
||||||
|
@ -253,27 +253,29 @@ read_n_bytes (bfd *abfd ATTRIBUTE_UNUSED,
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
read_string (bfd *abfd ATTRIBUTE_UNUSED,
|
read_string (bfd *abfd ATTRIBUTE_UNUSED,
|
||||||
char *buf,
|
bfd_byte *buf,
|
||||||
unsigned int *bytes_read_ptr)
|
unsigned int *bytes_read_ptr)
|
||||||
{
|
{
|
||||||
/* Return a pointer to the embedded string. */
|
/* Return a pointer to the embedded string. */
|
||||||
if (*buf == '\0')
|
char *str = (char *) buf;
|
||||||
|
if (*str == '\0')
|
||||||
{
|
{
|
||||||
*bytes_read_ptr = 1;
|
*bytes_read_ptr = 1;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
*bytes_read_ptr = strlen (buf) + 1;
|
*bytes_read_ptr = strlen (str) + 1;
|
||||||
return buf;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
read_indirect_string (struct comp_unit* unit,
|
read_indirect_string (struct comp_unit* unit,
|
||||||
char *buf,
|
bfd_byte *buf,
|
||||||
unsigned int *bytes_read_ptr)
|
unsigned int *bytes_read_ptr)
|
||||||
{
|
{
|
||||||
bfd_uint64_t offset;
|
bfd_uint64_t offset;
|
||||||
struct dwarf2_debug *stash = unit->stash;
|
struct dwarf2_debug *stash = unit->stash;
|
||||||
|
char *str;
|
||||||
|
|
||||||
if (unit->offset_size == 4)
|
if (unit->offset_size == 4)
|
||||||
offset = read_4_bytes (unit->abfd, buf);
|
offset = read_4_bytes (unit->abfd, buf);
|
||||||
|
@ -315,16 +317,16 @@ read_indirect_string (struct comp_unit* unit,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
buf = stash->dwarf_str_buffer + offset;
|
str = (char *) stash->dwarf_str_buffer + offset;
|
||||||
if (*buf == '\0')
|
if (*str == '\0')
|
||||||
return NULL;
|
return NULL;
|
||||||
return buf;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* END VERBATIM */
|
/* END VERBATIM */
|
||||||
|
|
||||||
static bfd_uint64_t
|
static bfd_uint64_t
|
||||||
read_address (struct comp_unit *unit, char *buf)
|
read_address (struct comp_unit *unit, bfd_byte *buf)
|
||||||
{
|
{
|
||||||
switch (unit->addr_size)
|
switch (unit->addr_size)
|
||||||
{
|
{
|
||||||
|
@ -370,7 +372,7 @@ static struct abbrev_info**
|
||||||
read_abbrevs (bfd *abfd, bfd_uint64_t offset, struct dwarf2_debug *stash)
|
read_abbrevs (bfd *abfd, bfd_uint64_t offset, struct dwarf2_debug *stash)
|
||||||
{
|
{
|
||||||
struct abbrev_info **abbrevs;
|
struct abbrev_info **abbrevs;
|
||||||
char *abbrev_ptr;
|
bfd_byte *abbrev_ptr;
|
||||||
struct abbrev_info *cur_abbrev;
|
struct abbrev_info *cur_abbrev;
|
||||||
unsigned int abbrev_number, bytes_read, abbrev_name;
|
unsigned int abbrev_number, bytes_read, abbrev_name;
|
||||||
unsigned int abbrev_form, hash_number;
|
unsigned int abbrev_form, hash_number;
|
||||||
|
@ -477,11 +479,11 @@ read_abbrevs (bfd *abfd, bfd_uint64_t offset, struct dwarf2_debug *stash)
|
||||||
|
|
||||||
/* Read an attribute value described by an attribute form. */
|
/* Read an attribute value described by an attribute form. */
|
||||||
|
|
||||||
static char *
|
static bfd_byte *
|
||||||
read_attribute_value (struct attribute *attr,
|
read_attribute_value (struct attribute *attr,
|
||||||
unsigned form,
|
unsigned form,
|
||||||
struct comp_unit *unit,
|
struct comp_unit *unit,
|
||||||
char *info_ptr)
|
bfd_byte *info_ptr)
|
||||||
{
|
{
|
||||||
bfd *abfd = unit->abfd;
|
bfd *abfd = unit->abfd;
|
||||||
unsigned int bytes_read;
|
unsigned int bytes_read;
|
||||||
|
@ -605,11 +607,11 @@ read_attribute_value (struct attribute *attr,
|
||||||
|
|
||||||
/* Read an attribute described by an abbreviated attribute. */
|
/* Read an attribute described by an abbreviated attribute. */
|
||||||
|
|
||||||
static char *
|
static bfd_byte *
|
||||||
read_attribute (struct attribute *attr,
|
read_attribute (struct attribute *attr,
|
||||||
struct attr_abbrev *abbrev,
|
struct attr_abbrev *abbrev,
|
||||||
struct comp_unit *unit,
|
struct comp_unit *unit,
|
||||||
char *info_ptr)
|
bfd_byte *info_ptr)
|
||||||
{
|
{
|
||||||
attr->name = abbrev->name;
|
attr->name = abbrev->name;
|
||||||
info_ptr = read_attribute_value (attr, abbrev->form, unit, info_ptr);
|
info_ptr = read_attribute_value (attr, abbrev->form, unit, info_ptr);
|
||||||
|
@ -625,7 +627,7 @@ struct line_info
|
||||||
{
|
{
|
||||||
struct line_info* prev_line;
|
struct line_info* prev_line;
|
||||||
bfd_vma address;
|
bfd_vma address;
|
||||||
char* filename;
|
char *filename;
|
||||||
unsigned int line;
|
unsigned int line;
|
||||||
unsigned int column;
|
unsigned int column;
|
||||||
int end_sequence; /* End of (sequential) code sequence. */
|
int end_sequence; /* End of (sequential) code sequence. */
|
||||||
|
@ -644,8 +646,8 @@ struct line_info_table
|
||||||
bfd* abfd;
|
bfd* abfd;
|
||||||
unsigned int num_files;
|
unsigned int num_files;
|
||||||
unsigned int num_dirs;
|
unsigned int num_dirs;
|
||||||
char* comp_dir;
|
char *comp_dir;
|
||||||
char** dirs;
|
char **dirs;
|
||||||
struct fileinfo* files;
|
struct fileinfo* files;
|
||||||
struct line_info* last_line; /* largest VMA */
|
struct line_info* last_line; /* largest VMA */
|
||||||
struct line_info* lcl_head; /* local head; used in 'add_line_info' */
|
struct line_info* lcl_head; /* local head; used in 'add_line_info' */
|
||||||
|
@ -654,7 +656,7 @@ struct line_info_table
|
||||||
struct funcinfo
|
struct funcinfo
|
||||||
{
|
{
|
||||||
struct funcinfo *prev_func;
|
struct funcinfo *prev_func;
|
||||||
char* name;
|
char *name;
|
||||||
bfd_vma low;
|
bfd_vma low;
|
||||||
bfd_vma high;
|
bfd_vma high;
|
||||||
};
|
};
|
||||||
|
@ -763,7 +765,7 @@ add_line_info (struct line_info_table *table,
|
||||||
static char *
|
static char *
|
||||||
concat_filename (struct line_info_table *table, unsigned int file)
|
concat_filename (struct line_info_table *table, unsigned int file)
|
||||||
{
|
{
|
||||||
char* filename;
|
char *filename;
|
||||||
|
|
||||||
if (file - 1 >= table->num_files)
|
if (file - 1 >= table->num_files)
|
||||||
{
|
{
|
||||||
|
@ -776,7 +778,7 @@ concat_filename (struct line_info_table *table, unsigned int file)
|
||||||
|
|
||||||
if (! IS_ABSOLUTE_PATH (filename))
|
if (! IS_ABSOLUTE_PATH (filename))
|
||||||
{
|
{
|
||||||
char* dirname = (table->files[file - 1].dir
|
char *dirname = (table->files[file - 1].dir
|
||||||
? table->dirs[table->files[file - 1].dir - 1]
|
? table->dirs[table->files[file - 1].dir - 1]
|
||||||
: table->comp_dir);
|
: table->comp_dir);
|
||||||
|
|
||||||
|
@ -846,8 +848,8 @@ decode_line_info (struct comp_unit *unit, struct dwarf2_debug *stash)
|
||||||
{
|
{
|
||||||
bfd *abfd = unit->abfd;
|
bfd *abfd = unit->abfd;
|
||||||
struct line_info_table* table;
|
struct line_info_table* table;
|
||||||
char *line_ptr;
|
bfd_byte *line_ptr;
|
||||||
char *line_end;
|
bfd_byte *line_end;
|
||||||
struct line_head lh;
|
struct line_head lh;
|
||||||
unsigned int i, bytes_read, offset_size;
|
unsigned int i, bytes_read, offset_size;
|
||||||
char *cur_file, *cur_dir;
|
char *cur_file, *cur_dir;
|
||||||
|
@ -1265,7 +1267,7 @@ static char *
|
||||||
find_abstract_instance_name (struct comp_unit *unit, bfd_uint64_t die_ref)
|
find_abstract_instance_name (struct comp_unit *unit, bfd_uint64_t die_ref)
|
||||||
{
|
{
|
||||||
bfd *abfd = unit->abfd;
|
bfd *abfd = unit->abfd;
|
||||||
char *info_ptr;
|
bfd_byte *info_ptr;
|
||||||
unsigned int abbrev_number, bytes_read, i;
|
unsigned int abbrev_number, bytes_read, i;
|
||||||
struct abbrev_info *abbrev;
|
struct abbrev_info *abbrev;
|
||||||
struct attribute attr;
|
struct attribute attr;
|
||||||
|
@ -1306,7 +1308,7 @@ static bfd_boolean
|
||||||
scan_unit_for_functions (struct comp_unit *unit)
|
scan_unit_for_functions (struct comp_unit *unit)
|
||||||
{
|
{
|
||||||
bfd *abfd = unit->abfd;
|
bfd *abfd = unit->abfd;
|
||||||
char *info_ptr = unit->first_child_die_ptr;
|
bfd_byte *info_ptr = unit->first_child_die_ptr;
|
||||||
int nesting_level = 1;
|
int nesting_level = 1;
|
||||||
|
|
||||||
while (nesting_level)
|
while (nesting_level)
|
||||||
|
@ -1315,7 +1317,7 @@ scan_unit_for_functions (struct comp_unit *unit)
|
||||||
struct abbrev_info *abbrev;
|
struct abbrev_info *abbrev;
|
||||||
struct attribute attr;
|
struct attribute attr;
|
||||||
struct funcinfo *func;
|
struct funcinfo *func;
|
||||||
char* name = 0;
|
char *name = 0;
|
||||||
|
|
||||||
abbrev_number = read_unsigned_leb128 (abfd, info_ptr, &bytes_read);
|
abbrev_number = read_unsigned_leb128 (abfd, info_ptr, &bytes_read);
|
||||||
info_ptr += bytes_read;
|
info_ptr += bytes_read;
|
||||||
|
@ -1417,7 +1419,7 @@ static struct comp_unit *
|
||||||
parse_comp_unit (bfd *abfd,
|
parse_comp_unit (bfd *abfd,
|
||||||
struct dwarf2_debug *stash,
|
struct dwarf2_debug *stash,
|
||||||
bfd_vma unit_length,
|
bfd_vma unit_length,
|
||||||
char *info_ptr_unit,
|
bfd_byte *info_ptr_unit,
|
||||||
unsigned int offset_size)
|
unsigned int offset_size)
|
||||||
{
|
{
|
||||||
struct comp_unit* unit;
|
struct comp_unit* unit;
|
||||||
|
@ -1428,8 +1430,8 @@ parse_comp_unit (bfd *abfd,
|
||||||
unsigned int abbrev_number, bytes_read, i;
|
unsigned int abbrev_number, bytes_read, i;
|
||||||
struct abbrev_info *abbrev;
|
struct abbrev_info *abbrev;
|
||||||
struct attribute attr;
|
struct attribute attr;
|
||||||
char *info_ptr = stash->info_ptr;
|
bfd_byte *info_ptr = stash->info_ptr;
|
||||||
char *end_ptr = info_ptr + unit_length;
|
bfd_byte *end_ptr = info_ptr + unit_length;
|
||||||
bfd_size_type amt;
|
bfd_size_type amt;
|
||||||
|
|
||||||
version = read_2_bytes (abfd, info_ptr);
|
version = read_2_bytes (abfd, info_ptr);
|
||||||
|
@ -1527,7 +1529,7 @@ parse_comp_unit (bfd *abfd,
|
||||||
|
|
||||||
case DW_AT_comp_dir:
|
case DW_AT_comp_dir:
|
||||||
{
|
{
|
||||||
char* comp_dir = attr.u.str;
|
char *comp_dir = attr.u.str;
|
||||||
if (comp_dir)
|
if (comp_dir)
|
||||||
{
|
{
|
||||||
/* Irix 6.2 native cc prepends <machine>.: to the compilation
|
/* Irix 6.2 native cc prepends <machine>.: to the compilation
|
||||||
|
@ -1791,7 +1793,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd,
|
||||||
bfd_vma length;
|
bfd_vma length;
|
||||||
bfd_boolean found;
|
bfd_boolean found;
|
||||||
unsigned int offset_size = addr_size;
|
unsigned int offset_size = addr_size;
|
||||||
char *info_ptr_unit = stash->info_ptr;
|
bfd_byte *info_ptr_unit = stash->info_ptr;
|
||||||
|
|
||||||
length = read_4_bytes (abfd, stash->info_ptr);
|
length = read_4_bytes (abfd, stash->info_ptr);
|
||||||
/* A 0xffffff length is the DWARF3 way of indicating we use
|
/* A 0xffffff length is the DWARF3 way of indicating we use
|
||||||
|
|
|
@ -269,7 +269,7 @@ struct cie
|
||||||
{
|
{
|
||||||
struct cie_header hdr;
|
struct cie_header hdr;
|
||||||
unsigned char version;
|
unsigned char version;
|
||||||
unsigned char augmentation[20];
|
char augmentation[20];
|
||||||
bfd_vma code_align;
|
bfd_vma code_align;
|
||||||
bfd_signed_vma data_align;
|
bfd_signed_vma data_align;
|
||||||
bfd_vma ra_column;
|
bfd_vma ra_column;
|
||||||
|
@ -955,7 +955,7 @@ struct elf_backend_data
|
||||||
see elf.c, elfcode.h. */
|
see elf.c, elfcode.h. */
|
||||||
bfd *(*elf_backend_bfd_from_remote_memory)
|
bfd *(*elf_backend_bfd_from_remote_memory)
|
||||||
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
||||||
int (*target_read_memory) (bfd_vma vma, char *myaddr, int len));
|
int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
|
||||||
|
|
||||||
/* This function is used by `_bfd_elf_get_synthetic_symtab';
|
/* This function is used by `_bfd_elf_get_synthetic_symtab';
|
||||||
see elf.c. */
|
see elf.c. */
|
||||||
|
@ -1780,10 +1780,10 @@ extern char *elfcore_write_lwpstatus
|
||||||
|
|
||||||
extern bfd *_bfd_elf32_bfd_from_remote_memory
|
extern bfd *_bfd_elf32_bfd_from_remote_memory
|
||||||
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
||||||
int (*target_read_memory) (bfd_vma, char *, int));
|
int (*target_read_memory) (bfd_vma, bfd_byte *, int));
|
||||||
extern bfd *_bfd_elf64_bfd_from_remote_memory
|
extern bfd *_bfd_elf64_bfd_from_remote_memory
|
||||||
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
|
||||||
int (*target_read_memory) (bfd_vma, char *, int));
|
int (*target_read_memory) (bfd_vma, bfd_byte *, int));
|
||||||
|
|
||||||
/* SH ELF specific routine. */
|
/* SH ELF specific routine. */
|
||||||
|
|
||||||
|
|
|
@ -453,7 +453,7 @@ _bfd_elf_discard_section_eh_frame
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
unsigned char *aug;
|
char *aug;
|
||||||
bfd_byte *start, *end, *insns;
|
bfd_byte *start, *end, *insns;
|
||||||
bfd_size_type length;
|
bfd_size_type length;
|
||||||
|
|
||||||
|
@ -563,10 +563,10 @@ _bfd_elf_discard_section_eh_frame
|
||||||
|
|
||||||
/* Cannot handle unknown versions. */
|
/* Cannot handle unknown versions. */
|
||||||
REQUIRE (cie.version == 1 || cie.version == 3);
|
REQUIRE (cie.version == 1 || cie.version == 3);
|
||||||
REQUIRE (strlen (buf) < sizeof (cie.augmentation));
|
REQUIRE (strlen ((char *) buf) < sizeof (cie.augmentation));
|
||||||
|
|
||||||
strcpy (cie.augmentation, buf);
|
strcpy (cie.augmentation, (char *) buf);
|
||||||
buf = strchr (buf, '\0') + 1;
|
buf = (bfd_byte *) strchr ((char *) buf, '\0') + 1;
|
||||||
ENSURE_NO_RELOCS (buf);
|
ENSURE_NO_RELOCS (buf);
|
||||||
if (buf[0] == 'e' && buf[1] == 'h')
|
if (buf[0] == 'e' && buf[1] == 'h')
|
||||||
{
|
{
|
||||||
|
@ -1088,7 +1088,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
|
||||||
|| ent->need_lsda_relative
|
|| ent->need_lsda_relative
|
||||||
|| ent->per_encoding_relative)
|
|| ent->per_encoding_relative)
|
||||||
{
|
{
|
||||||
unsigned char *aug;
|
char *aug;
|
||||||
unsigned int action, extra_string, extra_data;
|
unsigned int action, extra_string, extra_data;
|
||||||
unsigned int per_width, per_encoding;
|
unsigned int per_width, per_encoding;
|
||||||
|
|
||||||
|
@ -1102,8 +1102,8 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
|
||||||
|
|
||||||
/* Skip length, id and version. */
|
/* Skip length, id and version. */
|
||||||
buf += 9;
|
buf += 9;
|
||||||
aug = buf;
|
aug = (char *) buf;
|
||||||
buf = strchr (buf, '\0') + 1;
|
buf += strlen (aug) + 1;
|
||||||
skip_leb128 (&buf, end);
|
skip_leb128 (&buf, end);
|
||||||
skip_leb128 (&buf, end);
|
skip_leb128 (&buf, end);
|
||||||
skip_leb128 (&buf, end);
|
skip_leb128 (&buf, end);
|
||||||
|
@ -1117,7 +1117,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
|
||||||
|
|
||||||
/* Make room for the new augmentation string and data bytes. */
|
/* Make room for the new augmentation string and data bytes. */
|
||||||
memmove (buf + extra_string + extra_data, buf, end - buf);
|
memmove (buf + extra_string + extra_data, buf, end - buf);
|
||||||
memmove (aug + extra_string, aug, buf - aug);
|
memmove (aug + extra_string, aug, buf - (bfd_byte *) aug);
|
||||||
buf += extra_string;
|
buf += extra_string;
|
||||||
end += extra_string + extra_data;
|
end += extra_string + extra_data;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ELF strtab with GC and suffix merging support.
|
/* ELF strtab with GC and suffix merging support.
|
||||||
Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
|
Copyright 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||||
Written by Jakub Jelinek <jakub@redhat.com>.
|
Written by Jakub Jelinek <jakub@redhat.com>.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -263,8 +263,8 @@ strrevcmp (const void *a, const void *b)
|
||||||
struct elf_strtab_hash_entry *B = *(struct elf_strtab_hash_entry **) b;
|
struct elf_strtab_hash_entry *B = *(struct elf_strtab_hash_entry **) b;
|
||||||
unsigned int lenA = A->len;
|
unsigned int lenA = A->len;
|
||||||
unsigned int lenB = B->len;
|
unsigned int lenB = B->len;
|
||||||
const unsigned char *s = A->root.string + lenA - 1;
|
const unsigned char *s = (const unsigned char *) A->root.string + lenA - 1;
|
||||||
const unsigned char *t = B->root.string + lenB - 1;
|
const unsigned char *t = (const unsigned char *) B->root.string + lenB - 1;
|
||||||
int l = lenA < lenB ? lenA : lenB;
|
int l = lenA < lenB ? lenA : lenB;
|
||||||
|
|
||||||
while (l)
|
while (l)
|
||||||
|
|
18
bfd/elf.c
18
bfd/elf.c
|
@ -210,10 +210,10 @@ bfd_elf_hash (const char *namearg)
|
||||||
file, into a newly allocated buffer, and return a pointer to the
|
file, into a newly allocated buffer, and return a pointer to the
|
||||||
buffer. */
|
buffer. */
|
||||||
|
|
||||||
static char *
|
static bfd_byte *
|
||||||
elf_read (bfd *abfd, file_ptr offset, bfd_size_type size)
|
elf_read (bfd *abfd, file_ptr offset, bfd_size_type size)
|
||||||
{
|
{
|
||||||
char *buf;
|
bfd_byte *buf;
|
||||||
|
|
||||||
if ((buf = bfd_alloc (abfd, size)) == NULL)
|
if ((buf = bfd_alloc (abfd, size)) == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -253,15 +253,15 @@ char *
|
||||||
bfd_elf_get_str_section (bfd *abfd, unsigned int shindex)
|
bfd_elf_get_str_section (bfd *abfd, unsigned int shindex)
|
||||||
{
|
{
|
||||||
Elf_Internal_Shdr **i_shdrp;
|
Elf_Internal_Shdr **i_shdrp;
|
||||||
char *shstrtab = NULL;
|
bfd_byte *shstrtab = NULL;
|
||||||
file_ptr offset;
|
file_ptr offset;
|
||||||
bfd_size_type shstrtabsize;
|
bfd_size_type shstrtabsize;
|
||||||
|
|
||||||
i_shdrp = elf_elfsections (abfd);
|
i_shdrp = elf_elfsections (abfd);
|
||||||
if (i_shdrp == 0 || i_shdrp[shindex] == 0)
|
if (i_shdrp == 0 || i_shdrp[shindex] == 0)
|
||||||
return 0;
|
return NULL;
|
||||||
|
|
||||||
shstrtab = (char *) i_shdrp[shindex]->contents;
|
shstrtab = i_shdrp[shindex]->contents;
|
||||||
if (shstrtab == NULL)
|
if (shstrtab == NULL)
|
||||||
{
|
{
|
||||||
/* No cached one, attempt to read, and cache what we read. */
|
/* No cached one, attempt to read, and cache what we read. */
|
||||||
|
@ -270,7 +270,7 @@ bfd_elf_get_str_section (bfd *abfd, unsigned int shindex)
|
||||||
shstrtab = elf_read (abfd, offset, shstrtabsize);
|
shstrtab = elf_read (abfd, offset, shstrtabsize);
|
||||||
i_shdrp[shindex]->contents = shstrtab;
|
i_shdrp[shindex]->contents = shstrtab;
|
||||||
}
|
}
|
||||||
return shstrtab;
|
return (char *) shstrtab;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
|
@ -5576,8 +5576,8 @@ swap_out_syms (bfd *abfd,
|
||||||
Elf_Internal_Shdr *symtab_hdr;
|
Elf_Internal_Shdr *symtab_hdr;
|
||||||
Elf_Internal_Shdr *symtab_shndx_hdr;
|
Elf_Internal_Shdr *symtab_shndx_hdr;
|
||||||
Elf_Internal_Shdr *symstrtab_hdr;
|
Elf_Internal_Shdr *symstrtab_hdr;
|
||||||
char *outbound_syms;
|
bfd_byte *outbound_syms;
|
||||||
char *outbound_shndx;
|
bfd_byte *outbound_shndx;
|
||||||
int idx;
|
int idx;
|
||||||
bfd_size_type amt;
|
bfd_size_type amt;
|
||||||
bfd_boolean name_local_sections;
|
bfd_boolean name_local_sections;
|
||||||
|
@ -7866,7 +7866,7 @@ bfd_elf_bfd_from_remote_memory
|
||||||
(bfd *templ,
|
(bfd *templ,
|
||||||
bfd_vma ehdr_vma,
|
bfd_vma ehdr_vma,
|
||||||
bfd_vma *loadbasep,
|
bfd_vma *loadbasep,
|
||||||
int (*target_read_memory) (bfd_vma, char *, int))
|
int (*target_read_memory) (bfd_vma, bfd_byte *, int))
|
||||||
{
|
{
|
||||||
return (*get_elf_backend_data (templ)->elf_backend_bfd_from_remote_memory)
|
return (*get_elf_backend_data (templ)->elf_backend_bfd_from_remote_memory)
|
||||||
(templ, ehdr_vma, loadbasep, target_read_memory);
|
(templ, ehdr_vma, loadbasep, target_read_memory);
|
||||||
|
|
|
@ -2170,7 +2170,7 @@ bfd_m68k_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
|
||||||
bfd_put_32 (abfd, irel->r_offset + datasec->output_offset, p);
|
bfd_put_32 (abfd, irel->r_offset + datasec->output_offset, p);
|
||||||
memset (p + 4, 0, 8);
|
memset (p + 4, 0, 8);
|
||||||
if (targetsec != NULL)
|
if (targetsec != NULL)
|
||||||
strncpy (p + 4, targetsec->output_section->name, 8);
|
strncpy ((char *) p + 4, targetsec->output_section->name, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
|
||||||
|
|
|
@ -6110,7 +6110,7 @@ ppc_elf_final_write_processing (bfd *abfd, bfd_boolean linker ATTRIBUTE_UNUSED)
|
||||||
bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer);
|
bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer);
|
||||||
bfd_put_32 (abfd, num_entries * 4, buffer + 4);
|
bfd_put_32 (abfd, num_entries * 4, buffer + 4);
|
||||||
bfd_put_32 (abfd, 0x2, buffer + 8);
|
bfd_put_32 (abfd, 0x2, buffer + 8);
|
||||||
strcpy (buffer + 12, APUINFO_LABEL);
|
strcpy ((char *) buffer + 12, APUINFO_LABEL);
|
||||||
|
|
||||||
length = 20;
|
length = 20;
|
||||||
for (i = 0; i < num_entries; i++)
|
for (i = 0; i < num_entries; i++)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Renesas / SuperH specific support for Symbian 32-bit ELF files
|
/* Renesas / SuperH specific support for Symbian 32-bit ELF files
|
||||||
Copyright 2004
|
Copyright 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Contributed by Red Hat
|
Contributed by Red Hat
|
||||||
|
|
||||||
|
@ -96,8 +96,8 @@
|
||||||
typedef struct symbol_rename
|
typedef struct symbol_rename
|
||||||
{
|
{
|
||||||
struct symbol_rename * next;
|
struct symbol_rename * next;
|
||||||
bfd_byte * current_name;
|
char * current_name;
|
||||||
bfd_byte * new_name;
|
char * new_name;
|
||||||
struct elf_link_hash_entry * current_hash;
|
struct elf_link_hash_entry * current_hash;
|
||||||
unsigned long new_symndx;
|
unsigned long new_symndx;
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ static symbol_rename * rename_list = NULL;
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
sh_symbian_import_as (struct bfd_link_info *info, bfd * abfd,
|
sh_symbian_import_as (struct bfd_link_info *info, bfd * abfd,
|
||||||
bfd_byte * current_name, bfd_byte * new_name)
|
char * current_name, char * new_name)
|
||||||
{
|
{
|
||||||
struct elf_link_hash_entry * new_hash;
|
struct elf_link_hash_entry * new_hash;
|
||||||
symbol_rename * node;
|
symbol_rename * node;
|
||||||
|
@ -173,7 +173,7 @@ sh_symbian_import_as (struct bfd_link_info *info, bfd * abfd,
|
||||||
|
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
sh_symbian_import (bfd * abfd ATTRIBUTE_UNUSED, bfd_byte * name)
|
sh_symbian_import (bfd * abfd ATTRIBUTE_UNUSED, char * name)
|
||||||
{
|
{
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
fprintf (stderr, "IMPORT '%s'\n", name);
|
fprintf (stderr, "IMPORT '%s'\n", name);
|
||||||
|
@ -184,7 +184,7 @@ sh_symbian_import (bfd * abfd ATTRIBUTE_UNUSED, bfd_byte * name)
|
||||||
}
|
}
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
sh_symbian_export (bfd * abfd ATTRIBUTE_UNUSED, bfd_byte * name)
|
sh_symbian_export (bfd * abfd ATTRIBUTE_UNUSED, char * name)
|
||||||
{
|
{
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
fprintf (stderr, "EXPORT '%s'\n", name);
|
fprintf (stderr, "EXPORT '%s'\n", name);
|
||||||
|
@ -202,14 +202,14 @@ static bfd_boolean
|
||||||
sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
|
sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
|
||||||
asection * sec, bfd_byte * contents)
|
asection * sec, bfd_byte * contents)
|
||||||
{
|
{
|
||||||
bfd_byte *s;
|
char *s;
|
||||||
bfd_byte *e;
|
char *e;
|
||||||
bfd_boolean result = TRUE;
|
bfd_boolean result = TRUE;
|
||||||
bfd_size_type sz = sec->rawsize ? sec->rawsize : sec->size;
|
bfd_size_type sz = sec->rawsize ? sec->rawsize : sec->size;
|
||||||
|
|
||||||
for (s = contents, e = s + sz; s < e;)
|
for (s = (char *) contents, e = s + sz; s < e;)
|
||||||
{
|
{
|
||||||
bfd_byte * directive = s;
|
char * directive = s;
|
||||||
|
|
||||||
switch (*s)
|
switch (*s)
|
||||||
{
|
{
|
||||||
|
@ -229,9 +229,9 @@ sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
|
||||||
result = FALSE;
|
result = FALSE;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bfd_byte * new_name;
|
char * new_name;
|
||||||
bfd_byte * new_name_end;
|
char * new_name_end;
|
||||||
bfd_byte name_end_char;
|
char name_end_char;
|
||||||
|
|
||||||
/* Skip the IMPORT directive. */
|
/* Skip the IMPORT directive. */
|
||||||
s += strlen (DIRECTIVE_IMPORT);
|
s += strlen (DIRECTIVE_IMPORT);
|
||||||
|
@ -282,9 +282,9 @@ sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bfd_byte * current_name;
|
char * current_name;
|
||||||
bfd_byte * current_name_end;
|
char * current_name_end;
|
||||||
bfd_byte current_name_end_char;
|
char current_name_end_char;
|
||||||
|
|
||||||
/* Skip the 'AS '. */
|
/* Skip the 'AS '. */
|
||||||
s += strlen (DIRECTIVE_AS);
|
s += strlen (DIRECTIVE_AS);
|
||||||
|
@ -331,9 +331,9 @@ sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
|
||||||
result = FALSE;
|
result = FALSE;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bfd_byte * name;
|
char * name;
|
||||||
bfd_byte * name_end;
|
char * name_end;
|
||||||
bfd_byte name_end_char;
|
char name_end_char;
|
||||||
|
|
||||||
/* Skip the directive. */
|
/* Skip the directive. */
|
||||||
s += strlen (DIRECTIVE_EXPORT);
|
s += strlen (DIRECTIVE_EXPORT);
|
||||||
|
@ -374,7 +374,8 @@ sh_symbian_process_embedded_commands (struct bfd_link_info *info, bfd * abfd,
|
||||||
if (! result)
|
if (! result)
|
||||||
{
|
{
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
fprintf (stderr, "offset into .directive section: %d\n", directive - contents);
|
fprintf (stderr, "offset into .directive section: %d\n",
|
||||||
|
directive - (char *) contents);
|
||||||
|
|
||||||
bfd_set_error (bfd_error_invalid_operation);
|
bfd_set_error (bfd_error_invalid_operation);
|
||||||
_bfd_error_handler (_("%B: Unrecognised .directive command: %s"),
|
_bfd_error_handler (_("%B: Unrecognised .directive command: %s"),
|
||||||
|
|
|
@ -32,20 +32,6 @@ static bfd_reloc_status_type sh_elf_reloc
|
||||||
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
|
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
|
||||||
static bfd_reloc_status_type sh_elf_ignore_reloc
|
static bfd_reloc_status_type sh_elf_ignore_reloc
|
||||||
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
|
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
|
||||||
static reloc_howto_type *sh_elf_reloc_type_lookup
|
|
||||||
(bfd *, bfd_reloc_code_real_type);
|
|
||||||
static void sh_elf_info_to_howto
|
|
||||||
(bfd *, arelent *, Elf_Internal_Rela *);
|
|
||||||
static bfd_boolean sh_elf_set_private_flags
|
|
||||||
(bfd *, flagword);
|
|
||||||
static bfd_boolean sh_elf_copy_private_data
|
|
||||||
(bfd *, bfd *);
|
|
||||||
static bfd_boolean sh_elf_merge_private_data
|
|
||||||
(bfd *, bfd *);
|
|
||||||
static bfd_boolean sh_elf_set_mach_from_flags
|
|
||||||
(bfd *);
|
|
||||||
static bfd_boolean sh_elf_relax_section
|
|
||||||
(bfd *, asection *, struct bfd_link_info *, bfd_boolean *);
|
|
||||||
static bfd_boolean sh_elf_relax_delete_bytes
|
static bfd_boolean sh_elf_relax_delete_bytes
|
||||||
(bfd *, asection *, bfd_vma, int);
|
(bfd *, asection *, bfd_vma, int);
|
||||||
static bfd_boolean sh_elf_align_loads
|
static bfd_boolean sh_elf_align_loads
|
||||||
|
@ -54,67 +40,12 @@ static bfd_boolean sh_elf_align_loads
|
||||||
static bfd_boolean sh_elf_swap_insns
|
static bfd_boolean sh_elf_swap_insns
|
||||||
(bfd *, asection *, void *, bfd_byte *, bfd_vma);
|
(bfd *, asection *, void *, bfd_byte *, bfd_vma);
|
||||||
#endif
|
#endif
|
||||||
static bfd_boolean sh_elf_relocate_section
|
|
||||||
(bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
|
|
||||||
Elf_Internal_Rela *, Elf_Internal_Sym *, asection **);
|
|
||||||
static bfd_byte *sh_elf_get_relocated_section_contents
|
|
||||||
(bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
|
|
||||||
bfd_boolean, asymbol **);
|
|
||||||
static void sh_elf_copy_indirect_symbol
|
|
||||||
(const struct elf_backend_data *, struct elf_link_hash_entry *,
|
|
||||||
struct elf_link_hash_entry *);
|
|
||||||
static int sh_elf_optimized_tls_reloc
|
static int sh_elf_optimized_tls_reloc
|
||||||
(struct bfd_link_info *, int, int);
|
(struct bfd_link_info *, int, int);
|
||||||
static bfd_boolean sh_elf_mkobject
|
|
||||||
(bfd *);
|
|
||||||
static bfd_boolean sh_elf_object_p
|
|
||||||
(bfd *);
|
|
||||||
static bfd_boolean sh_elf_check_relocs
|
|
||||||
(bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
|
|
||||||
static struct bfd_hash_entry *sh_elf_link_hash_newfunc
|
|
||||||
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
|
|
||||||
static struct bfd_link_hash_table *sh_elf_link_hash_table_create
|
|
||||||
(bfd *);
|
|
||||||
static bfd_boolean sh_elf_adjust_dynamic_symbol
|
|
||||||
(struct bfd_link_info *, struct elf_link_hash_entry *);
|
|
||||||
static bfd_boolean sh_elf_size_dynamic_sections
|
|
||||||
(bfd *, struct bfd_link_info *);
|
|
||||||
static bfd_boolean sh_elf_finish_dynamic_symbol
|
|
||||||
(bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
|
|
||||||
Elf_Internal_Sym *);
|
|
||||||
static bfd_boolean sh_elf_finish_dynamic_sections
|
|
||||||
(bfd *, struct bfd_link_info *);
|
|
||||||
static bfd_reloc_status_type sh_elf_reloc_loop
|
|
||||||
(int, bfd *, asection *, bfd_byte *, bfd_vma, asection *, bfd_vma,
|
|
||||||
bfd_vma);
|
|
||||||
static bfd_boolean create_got_section
|
|
||||||
(bfd *, struct bfd_link_info *);
|
|
||||||
static bfd_boolean sh_elf_create_dynamic_sections
|
|
||||||
(bfd *, struct bfd_link_info *);
|
|
||||||
static bfd_vma dtpoff_base
|
static bfd_vma dtpoff_base
|
||||||
(struct bfd_link_info *);
|
(struct bfd_link_info *);
|
||||||
static bfd_vma tpoff
|
static bfd_vma tpoff
|
||||||
(struct bfd_link_info *, bfd_vma);
|
(struct bfd_link_info *, bfd_vma);
|
||||||
static asection * sh_elf_gc_mark_hook
|
|
||||||
(asection *, struct bfd_link_info *, Elf_Internal_Rela *,
|
|
||||||
struct elf_link_hash_entry *, Elf_Internal_Sym *);
|
|
||||||
static bfd_boolean sh_elf_gc_sweep_hook
|
|
||||||
(bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
|
|
||||||
static bfd_boolean allocate_dynrelocs
|
|
||||||
(struct elf_link_hash_entry *, void *);
|
|
||||||
static bfd_boolean readonly_dynrelocs
|
|
||||||
(struct elf_link_hash_entry *, void *);
|
|
||||||
static enum elf_reloc_type_class sh_elf_reloc_type_class
|
|
||||||
(const Elf_Internal_Rela *);
|
|
||||||
#ifdef INCLUDE_SHMEDIA
|
|
||||||
inline static void movi_shori_putval (bfd *, unsigned long, char *);
|
|
||||||
#endif
|
|
||||||
#if !defined SH_TARGET_ALREADY_DEFINED
|
|
||||||
static bfd_boolean elf32_shlin_grok_prstatus
|
|
||||||
(bfd *abfd, Elf_Internal_Note *note);
|
|
||||||
static bfd_boolean elf32_shlin_grok_psinfo
|
|
||||||
(bfd *abfd, Elf_Internal_Note *note);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The name of the dynamic interpreter. This is put in the .interp
|
/* The name of the dynamic interpreter. This is put in the .interp
|
||||||
section. */
|
section. */
|
||||||
|
@ -3369,7 +3300,7 @@ static const bfd_byte *elf_sh_pic_plt_entry;
|
||||||
#define elf_sh_plt_reloc_offset(info) (info->shared ? 52 : 44)
|
#define elf_sh_plt_reloc_offset(info) (info->shared ? 52 : 44)
|
||||||
|
|
||||||
inline static void
|
inline static void
|
||||||
movi_shori_putval (bfd *output_bfd, unsigned long value, char *addr)
|
movi_shori_putval (bfd *output_bfd, unsigned long value, bfd_byte *addr)
|
||||||
{
|
{
|
||||||
bfd_put_32 (output_bfd,
|
bfd_put_32 (output_bfd,
|
||||||
bfd_get_32 (output_bfd, addr)
|
bfd_get_32 (output_bfd, addr)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* MMIX-specific support for 64-bit ELF.
|
/* MMIX-specific support for 64-bit ELF.
|
||||||
Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
Copyright 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
Contributed by Hans-Peter Nilsson <hp@bitrange.com>
|
Contributed by Hans-Peter Nilsson <hp@bitrange.com>
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -993,7 +993,7 @@ mmix_elf_perform_relocation (isec, howto, datap, addr, value)
|
||||||
position for the stub. There's supposed to be room allocated
|
position for the stub. There's supposed to be room allocated
|
||||||
for the stub. */
|
for the stub. */
|
||||||
bfd_byte *stubcontents
|
bfd_byte *stubcontents
|
||||||
= ((char *) datap
|
= ((bfd_byte *) datap
|
||||||
- (addr - (isec->output_section->vma + isec->output_offset))
|
- (addr - (isec->output_section->vma + isec->output_offset))
|
||||||
+ size
|
+ size
|
||||||
+ mmix_elf_section_data (isec)->pjs.stub_offset);
|
+ mmix_elf_section_data (isec)->pjs.stub_offset);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/* SuperH SH64-specific support for 64-bit ELF
|
/* SuperH SH64-specific support for 64-bit ELF
|
||||||
Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
Copyright 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
|
||||||
|
@ -107,70 +108,10 @@ struct elf_sh64_link_hash_table
|
||||||
#define sh64_elf64_hash_table(p) \
|
#define sh64_elf64_hash_table(p) \
|
||||||
((struct elf_sh64_link_hash_table *) ((p)->hash))
|
((struct elf_sh64_link_hash_table *) ((p)->hash))
|
||||||
|
|
||||||
static bfd_boolean sh_elf64_copy_private_data
|
|
||||||
(bfd *, bfd *);
|
|
||||||
static bfd_boolean sh_elf64_copy_private_data_internal
|
|
||||||
(bfd *, bfd *);
|
|
||||||
static bfd_boolean sh_elf64_merge_private_data
|
|
||||||
(bfd *, bfd *);
|
|
||||||
static bfd_reloc_status_type sh_elf64_ignore_reloc
|
static bfd_reloc_status_type sh_elf64_ignore_reloc
|
||||||
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
|
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
|
||||||
static bfd_reloc_status_type sh_elf64_reloc
|
static bfd_reloc_status_type sh_elf64_reloc
|
||||||
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
|
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
|
||||||
static reloc_howto_type *sh_elf64_reloc_type_lookup
|
|
||||||
(bfd *, bfd_reloc_code_real_type);
|
|
||||||
static void sh_elf64_info_to_howto
|
|
||||||
(bfd *, arelent *, Elf_Internal_Rela *);
|
|
||||||
static bfd_boolean sh_elf64_relocate_section
|
|
||||||
(bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
|
|
||||||
Elf_Internal_Rela *, Elf_Internal_Sym *, asection **);
|
|
||||||
static bfd_byte *sh_elf64_get_relocated_section_contents
|
|
||||||
(bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
|
|
||||||
bfd_boolean, asymbol **);
|
|
||||||
static bfd_boolean sh_elf64_set_mach_from_flags
|
|
||||||
(bfd *);
|
|
||||||
static bfd_boolean sh_elf64_set_private_flags
|
|
||||||
(bfd *, flagword);
|
|
||||||
static asection *sh_elf64_gc_mark_hook
|
|
||||||
(asection *, struct bfd_link_info *, Elf_Internal_Rela *,
|
|
||||||
struct elf_link_hash_entry *, Elf_Internal_Sym *);
|
|
||||||
static bfd_boolean sh_elf64_gc_sweep_hook
|
|
||||||
(bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
|
|
||||||
static bfd_boolean sh_elf64_check_relocs
|
|
||||||
(bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
|
|
||||||
static int sh64_elf64_get_symbol_type
|
|
||||||
(Elf_Internal_Sym *, int);
|
|
||||||
static bfd_boolean sh64_elf64_add_symbol_hook
|
|
||||||
(bfd *, struct bfd_link_info *, Elf_Internal_Sym *, const char **,
|
|
||||||
flagword *, asection **, bfd_vma *);
|
|
||||||
static bfd_boolean sh64_elf64_link_output_symbol_hook
|
|
||||||
(struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *,
|
|
||||||
struct elf_link_hash_entry *);
|
|
||||||
static bfd_boolean sh64_elf64_fake_sections
|
|
||||||
(bfd *, Elf_Internal_Shdr *, asection *);
|
|
||||||
static void sh64_elf64_final_write_processing
|
|
||||||
(bfd *, bfd_boolean);
|
|
||||||
static struct bfd_hash_entry *sh64_elf64_link_hash_newfunc
|
|
||||||
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
|
|
||||||
static struct bfd_link_hash_table *sh64_elf64_link_hash_table_create
|
|
||||||
(bfd *);
|
|
||||||
inline static void movi_shori_putval
|
|
||||||
(bfd *, unsigned long, char *);
|
|
||||||
inline static void movi_3shori_putval
|
|
||||||
(bfd *, bfd_vma, char *);
|
|
||||||
static bfd_boolean sh64_elf64_create_dynamic_sections
|
|
||||||
(bfd *, struct bfd_link_info *);
|
|
||||||
static bfd_boolean sh64_elf64_adjust_dynamic_symbol
|
|
||||||
(struct bfd_link_info *info, struct elf_link_hash_entry *);
|
|
||||||
static bfd_boolean sh64_elf64_discard_copies
|
|
||||||
(struct elf_sh64_link_hash_entry *, void *);
|
|
||||||
static bfd_boolean sh64_elf64_size_dynamic_sections
|
|
||||||
(bfd *, struct bfd_link_info *);
|
|
||||||
static bfd_boolean sh64_elf64_finish_dynamic_symbol
|
|
||||||
(bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
|
|
||||||
Elf_Internal_Sym *);
|
|
||||||
static bfd_boolean sh64_elf64_finish_dynamic_sections
|
|
||||||
(bfd *, struct bfd_link_info *);
|
|
||||||
|
|
||||||
static reloc_howto_type sh_elf64_howto_table[] = {
|
static reloc_howto_type sh_elf64_howto_table[] = {
|
||||||
/* No relocation. */
|
/* No relocation. */
|
||||||
|
@ -2271,7 +2212,7 @@ sh_elf64_get_relocated_section_contents (bfd *output_bfd,
|
||||||
|
|
||||||
/* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections. */
|
/* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections. */
|
||||||
|
|
||||||
bfd_boolean
|
static bfd_boolean
|
||||||
sh64_elf64_fake_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
sh64_elf64_fake_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||||
Elf_Internal_Shdr *elf_section_hdr,
|
Elf_Internal_Shdr *elf_section_hdr,
|
||||||
asection *asect)
|
asection *asect)
|
||||||
|
@ -3199,7 +3140,7 @@ sh64_elf64_link_hash_table_create (bfd *abfd)
|
||||||
}
|
}
|
||||||
|
|
||||||
inline static void
|
inline static void
|
||||||
movi_shori_putval (bfd *output_bfd, unsigned long value, char *addr)
|
movi_shori_putval (bfd *output_bfd, unsigned long value, bfd_byte *addr)
|
||||||
{
|
{
|
||||||
bfd_put_32 (output_bfd,
|
bfd_put_32 (output_bfd,
|
||||||
bfd_get_32 (output_bfd, addr)
|
bfd_get_32 (output_bfd, addr)
|
||||||
|
@ -3212,7 +3153,7 @@ movi_shori_putval (bfd *output_bfd, unsigned long value, char *addr)
|
||||||
}
|
}
|
||||||
|
|
||||||
inline static void
|
inline static void
|
||||||
movi_3shori_putval (bfd *output_bfd, bfd_vma value, char *addr)
|
movi_3shori_putval (bfd *output_bfd, bfd_vma value, bfd_byte *addr)
|
||||||
{
|
{
|
||||||
bfd_put_32 (output_bfd,
|
bfd_put_32 (output_bfd,
|
||||||
bfd_get_32 (output_bfd, addr)
|
bfd_get_32 (output_bfd, addr)
|
||||||
|
|
|
@ -1499,7 +1499,7 @@ NAME(_bfd_elf,bfd_from_remote_memory)
|
||||||
(bfd *templ,
|
(bfd *templ,
|
||||||
bfd_vma ehdr_vma,
|
bfd_vma ehdr_vma,
|
||||||
bfd_vma *loadbasep,
|
bfd_vma *loadbasep,
|
||||||
int (*target_read_memory) (bfd_vma, char *, int))
|
int (*target_read_memory) (bfd_vma, bfd_byte *, int))
|
||||||
{
|
{
|
||||||
Elf_External_Ehdr x_ehdr; /* Elf file header, external form */
|
Elf_External_Ehdr x_ehdr; /* Elf file header, external form */
|
||||||
Elf_Internal_Ehdr i_ehdr; /* Elf file header, internal form */
|
Elf_Internal_Ehdr i_ehdr; /* Elf file header, internal form */
|
||||||
|
@ -1508,13 +1508,13 @@ NAME(_bfd_elf,bfd_from_remote_memory)
|
||||||
bfd *nbfd;
|
bfd *nbfd;
|
||||||
struct bfd_in_memory *bim;
|
struct bfd_in_memory *bim;
|
||||||
int contents_size;
|
int contents_size;
|
||||||
char *contents;
|
bfd_byte *contents;
|
||||||
int err;
|
int err;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
bfd_vma loadbase;
|
bfd_vma loadbase;
|
||||||
|
|
||||||
/* Read in the ELF header in external format. */
|
/* Read in the ELF header in external format. */
|
||||||
err = target_read_memory (ehdr_vma, (char *) &x_ehdr, sizeof x_ehdr);
|
err = target_read_memory (ehdr_vma, (bfd_byte *) &x_ehdr, sizeof x_ehdr);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
bfd_set_error (bfd_error_system_call);
|
bfd_set_error (bfd_error_system_call);
|
||||||
|
@ -1574,7 +1574,7 @@ NAME(_bfd_elf,bfd_from_remote_memory)
|
||||||
bfd_set_error (bfd_error_no_memory);
|
bfd_set_error (bfd_error_no_memory);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
err = target_read_memory (ehdr_vma + i_ehdr.e_phoff, (char *) x_phdrs,
|
err = target_read_memory (ehdr_vma + i_ehdr.e_phoff, (bfd_byte *) x_phdrs,
|
||||||
i_ehdr.e_phnum * sizeof x_phdrs[0]);
|
i_ehdr.e_phnum * sizeof x_phdrs[0]);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
|
|
|
@ -818,7 +818,7 @@ mips_elf_create_procedure_table (void *handle, bfd *abfd,
|
||||||
ss = bfd_malloc (count);
|
ss = bfd_malloc (count);
|
||||||
if (ss == NULL)
|
if (ss == NULL)
|
||||||
goto error_return;
|
goto error_return;
|
||||||
if (! _bfd_ecoff_get_accumulated_ss (handle, ss))
|
if (! _bfd_ecoff_get_accumulated_ss (handle, (bfd_byte *) ss))
|
||||||
goto error_return;
|
goto error_return;
|
||||||
|
|
||||||
count = hdr->ipdMax;
|
count = hdr->ipdMax;
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
(This include file is not for users of the library.)
|
(This include file is not for users of the library.)
|
||||||
|
|
||||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||||
1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
Written by Cygnus Support.
|
Written by Cygnus Support.
|
||||||
|
|
||||||
|
@ -686,6 +687,6 @@ extern void bfd_section_already_linked_table_traverse
|
||||||
(bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
|
(bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
|
||||||
void *), void *);
|
void *), void *);
|
||||||
|
|
||||||
extern bfd_vma read_unsigned_leb128 (bfd *, char *, unsigned int *);
|
extern bfd_vma read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *);
|
||||||
extern bfd_signed_vma read_signed_leb128 (bfd *, char *, unsigned int *);
|
extern bfd_signed_vma read_signed_leb128 (bfd *, bfd_byte *, unsigned int *);
|
||||||
|
|
||||||
|
|
20
bfd/libbfd.c
20
bfd/libbfd.c
|
@ -1,6 +1,6 @@
|
||||||
/* Assorted BFD support routines, only used internally.
|
/* Assorted BFD support routines, only used internally.
|
||||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
2000, 2001, 2002, 2003, 2004
|
2000, 2001, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Written by Cygnus Support.
|
Written by Cygnus Support.
|
||||||
|
|
||||||
|
@ -865,12 +865,12 @@ warn_deprecated (const char *what,
|
||||||
|
|
||||||
bfd_vma
|
bfd_vma
|
||||||
read_unsigned_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
|
read_unsigned_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
|
||||||
char *buf,
|
bfd_byte *buf,
|
||||||
unsigned int *bytes_read_ptr)
|
unsigned int *bytes_read_ptr)
|
||||||
{
|
{
|
||||||
bfd_vma result;
|
bfd_vma result;
|
||||||
unsigned int num_read;
|
unsigned int num_read;
|
||||||
int shift;
|
unsigned int shift;
|
||||||
unsigned char byte;
|
unsigned char byte;
|
||||||
|
|
||||||
result = 0;
|
result = 0;
|
||||||
|
@ -878,7 +878,7 @@ read_unsigned_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
|
||||||
num_read = 0;
|
num_read = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
byte = bfd_get_8 (abfd, (bfd_byte *) buf);
|
byte = bfd_get_8 (abfd, buf);
|
||||||
buf++;
|
buf++;
|
||||||
num_read++;
|
num_read++;
|
||||||
result |= (((bfd_vma) byte & 0x7f) << shift);
|
result |= (((bfd_vma) byte & 0x7f) << shift);
|
||||||
|
@ -893,12 +893,12 @@ read_unsigned_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
|
||||||
|
|
||||||
bfd_signed_vma
|
bfd_signed_vma
|
||||||
read_signed_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
|
read_signed_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
|
||||||
char *buf,
|
bfd_byte *buf,
|
||||||
unsigned int * bytes_read_ptr)
|
unsigned int *bytes_read_ptr)
|
||||||
{
|
{
|
||||||
bfd_vma result;
|
bfd_vma result;
|
||||||
unsigned shift;
|
unsigned int shift;
|
||||||
int num_read;
|
unsigned int num_read;
|
||||||
unsigned char byte;
|
unsigned char byte;
|
||||||
|
|
||||||
result = 0;
|
result = 0;
|
||||||
|
@ -906,14 +906,14 @@ read_signed_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
|
||||||
num_read = 0;
|
num_read = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
byte = bfd_get_8 (abfd, (bfd_byte *) buf);
|
byte = bfd_get_8 (abfd, buf);
|
||||||
buf ++;
|
buf ++;
|
||||||
num_read ++;
|
num_read ++;
|
||||||
result |= (((bfd_vma) byte & 0x7f) << shift);
|
result |= (((bfd_vma) byte & 0x7f) << shift);
|
||||||
shift += 7;
|
shift += 7;
|
||||||
}
|
}
|
||||||
while (byte & 0x80);
|
while (byte & 0x80);
|
||||||
if ((shift < 8 * sizeof (result)) && (byte & 0x40))
|
if (shift < 8 * sizeof (result) && (byte & 0x40))
|
||||||
result |= (((bfd_vma) -1) << shift);
|
result |= (((bfd_vma) -1) << shift);
|
||||||
*bytes_read_ptr = num_read;
|
*bytes_read_ptr = num_read;
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -7,7 +7,8 @@
|
||||||
(This include file is not for users of the library.)
|
(This include file is not for users of the library.)
|
||||||
|
|
||||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||||
1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
Written by Cygnus Support.
|
Written by Cygnus Support.
|
||||||
|
|
||||||
|
@ -691,8 +692,8 @@ extern void bfd_section_already_linked_table_traverse
|
||||||
(bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
|
(bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
|
||||||
void *), void *);
|
void *), void *);
|
||||||
|
|
||||||
extern bfd_vma read_unsigned_leb128 (bfd *, char *, unsigned int *);
|
extern bfd_vma read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *);
|
||||||
extern bfd_signed_vma read_signed_leb128 (bfd *, char *, unsigned int *);
|
extern bfd_signed_vma read_signed_leb128 (bfd *, bfd_byte *, unsigned int *);
|
||||||
|
|
||||||
/* Extracted from init.c. */
|
/* Extracted from init.c. */
|
||||||
/* Extracted from libbfd.c. */
|
/* Extracted from libbfd.c. */
|
||||||
|
|
|
@ -798,7 +798,7 @@ bfd_mach_o_scan_read_symtab_strtab (abfd, sym)
|
||||||
bfd_set_error (bfd_error_file_truncated);
|
bfd_set_error (bfd_error_file_truncated);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
sym->strtab = b->buffer + sym->stroff;
|
sym->strtab = (char *) b->buffer + sym->stroff;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2120,7 +2120,7 @@ bfd_mach_o_core_file_failing_command (abfd)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return buf;
|
return (char *) buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
19
bfd/merge.c
19
bfd/merge.c
|
@ -1,5 +1,5 @@
|
||||||
/* SEC_MERGE support.
|
/* SEC_MERGE support.
|
||||||
Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
Copyright 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
Written by Jakub Jelinek <jakub@redhat.com>.
|
Written by Jakub Jelinek <jakub@redhat.com>.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -446,7 +446,8 @@ record_section (struct sec_merge_info *sinfo,
|
||||||
eltalign = ((eltalign ^ (eltalign - 1)) + 1) >> 1;
|
eltalign = ((eltalign ^ (eltalign - 1)) + 1) >> 1;
|
||||||
if (!eltalign || eltalign > mask)
|
if (!eltalign || eltalign > mask)
|
||||||
eltalign = mask + 1;
|
eltalign = mask + 1;
|
||||||
entry = sec_merge_add (sinfo->htab, p, (unsigned) eltalign, secinfo);
|
entry = sec_merge_add (sinfo->htab, (char *) p, (unsigned) eltalign,
|
||||||
|
secinfo);
|
||||||
if (! entry)
|
if (! entry)
|
||||||
goto error_return;
|
goto error_return;
|
||||||
p += entry->len;
|
p += entry->len;
|
||||||
|
@ -477,7 +478,7 @@ record_section (struct sec_merge_info *sinfo,
|
||||||
if (!nul && !((p - secinfo->contents) & mask))
|
if (!nul && !((p - secinfo->contents) & mask))
|
||||||
{
|
{
|
||||||
nul = TRUE;
|
nul = TRUE;
|
||||||
entry = sec_merge_add (sinfo->htab, p,
|
entry = sec_merge_add (sinfo->htab, (char *) p,
|
||||||
(unsigned) mask + 1, secinfo);
|
(unsigned) mask + 1, secinfo);
|
||||||
if (! entry)
|
if (! entry)
|
||||||
goto error_return;
|
goto error_return;
|
||||||
|
@ -491,7 +492,7 @@ record_section (struct sec_merge_info *sinfo,
|
||||||
{
|
{
|
||||||
for (p = secinfo->contents; p < end; p += sec->entsize)
|
for (p = secinfo->contents; p < end; p += sec->entsize)
|
||||||
{
|
{
|
||||||
entry = sec_merge_add (sinfo->htab, p, 1, secinfo);
|
entry = sec_merge_add (sinfo->htab, (char *) p, 1, secinfo);
|
||||||
if (! entry)
|
if (! entry)
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
|
@ -512,8 +513,8 @@ strrevcmp (const void *a, const void *b)
|
||||||
struct sec_merge_hash_entry *B = *(struct sec_merge_hash_entry **) b;
|
struct sec_merge_hash_entry *B = *(struct sec_merge_hash_entry **) b;
|
||||||
unsigned int lenA = A->len;
|
unsigned int lenA = A->len;
|
||||||
unsigned int lenB = B->len;
|
unsigned int lenB = B->len;
|
||||||
const unsigned char *s = A->root.string + lenA - 1;
|
const unsigned char *s = (const unsigned char *) A->root.string + lenA - 1;
|
||||||
const unsigned char *t = B->root.string + lenB - 1;
|
const unsigned char *t = (const unsigned char *) B->root.string + lenB - 1;
|
||||||
int l = lenA < lenB ? lenA : lenB;
|
int l = lenA < lenB ? lenA : lenB;
|
||||||
|
|
||||||
while (l)
|
while (l)
|
||||||
|
@ -537,8 +538,8 @@ strrevcmp_align (const void *a, const void *b)
|
||||||
struct sec_merge_hash_entry *B = *(struct sec_merge_hash_entry **) b;
|
struct sec_merge_hash_entry *B = *(struct sec_merge_hash_entry **) b;
|
||||||
unsigned int lenA = A->len;
|
unsigned int lenA = A->len;
|
||||||
unsigned int lenB = B->len;
|
unsigned int lenB = B->len;
|
||||||
const unsigned char *s = A->root.string + lenA - 1;
|
const unsigned char *s = (const unsigned char *) A->root.string + lenA - 1;
|
||||||
const unsigned char *t = B->root.string + lenB - 1;
|
const unsigned char *t = (const unsigned char *) B->root.string + lenB - 1;
|
||||||
int l = lenA < lenB ? lenA : lenB;
|
int l = lenA < lenB ? lenA : lenB;
|
||||||
int tail_align = (lenA & (A->alignment - 1)) - (lenB & (A->alignment - 1));
|
int tail_align = (lenA & (A->alignment - 1)) - (lenB & (A->alignment - 1));
|
||||||
|
|
||||||
|
@ -829,7 +830,7 @@ _bfd_merged_section_offset (bfd *output_bfd ATTRIBUTE_UNUSED, asection **psec,
|
||||||
{
|
{
|
||||||
p = secinfo->contents + (offset / sec->entsize) * sec->entsize;
|
p = secinfo->contents + (offset / sec->entsize) * sec->entsize;
|
||||||
}
|
}
|
||||||
entry = sec_merge_hash_lookup (secinfo->htab, p, 0, FALSE);
|
entry = sec_merge_hash_lookup (secinfo->htab, (char *) p, 0, FALSE);
|
||||||
if (!entry)
|
if (!entry)
|
||||||
{
|
{
|
||||||
if (! secinfo->htab->strings)
|
if (! secinfo->htab->strings)
|
||||||
|
|
10
bfd/mmo.c
10
bfd/mmo.c
|
@ -1,5 +1,5 @@
|
||||||
/* BFD back-end for mmo objects (MMIX-specific object-format).
|
/* BFD back-end for mmo objects (MMIX-specific object-format).
|
||||||
Copyright 2001, 2002, 2003, 2004
|
Copyright 2001, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Written by Hans-Peter Nilsson (hp@bitrange.com).
|
Written by Hans-Peter Nilsson (hp@bitrange.com).
|
||||||
Infrastructure and other bits originally copied from srec.c and
|
Infrastructure and other bits originally copied from srec.c and
|
||||||
|
@ -424,7 +424,7 @@ static bfd_boolean mmo_has_leading_or_trailing_zero_tetra_p (bfd *,
|
||||||
particular input or caller; put such things into the bfd or elsewhere.
|
particular input or caller; put such things into the bfd or elsewhere.
|
||||||
Look ma, no static per-invocation data! */
|
Look ma, no static per-invocation data! */
|
||||||
|
|
||||||
static unsigned
|
static
|
||||||
char valid_mmo_symbol_character_set[/* A-Z a-z (we assume consecutive
|
char valid_mmo_symbol_character_set[/* A-Z a-z (we assume consecutive
|
||||||
codes; sorry EBCDIC:ers!). */
|
codes; sorry EBCDIC:ers!). */
|
||||||
+ 'Z' - 'A' + 1 + 'z' - 'a' + 1
|
+ 'Z' - 'A' + 1 + 'z' - 'a' + 1
|
||||||
|
@ -947,7 +947,7 @@ mmo_get_generic_spec_data_section (bfd *abfd, int spec_data_number)
|
||||||
static asection *
|
static asection *
|
||||||
mmo_get_spec_section (bfd *abfd, int spec_data_number)
|
mmo_get_spec_section (bfd *abfd, int spec_data_number)
|
||||||
{
|
{
|
||||||
bfd_byte *secname;
|
char *secname;
|
||||||
asection *sec;
|
asection *sec;
|
||||||
bfd_byte buf[4];
|
bfd_byte buf[4];
|
||||||
unsigned int secname_length;
|
unsigned int secname_length;
|
||||||
|
@ -996,7 +996,7 @@ mmo_get_spec_section (bfd *abfd, int spec_data_number)
|
||||||
if (bfd_bread (secname + i * 4, 4, abfd) != 4)
|
if (bfd_bread (secname + i * 4, 4, abfd) != 4)
|
||||||
goto format_error_free;
|
goto format_error_free;
|
||||||
|
|
||||||
if (secname[i * 4] == LOP)
|
if (secname[i * 4] == (char) LOP)
|
||||||
{
|
{
|
||||||
/* A bit of overkill, but we handle char 0x98 in a section name,
|
/* A bit of overkill, but we handle char 0x98 in a section name,
|
||||||
and recognize misparsing. */
|
and recognize misparsing. */
|
||||||
|
@ -2547,7 +2547,7 @@ EXAMPLE
|
||||||
|
|
||||||
mmo_write_tetra_raw (abfd, LOP_SPEC_SECTION);
|
mmo_write_tetra_raw (abfd, LOP_SPEC_SECTION);
|
||||||
mmo_write_tetra (abfd, (strlen (sec->name) + 3) / 4);
|
mmo_write_tetra (abfd, (strlen (sec->name) + 3) / 4);
|
||||||
mmo_write_chunk (abfd, sec->name, strlen (sec->name));
|
mmo_write_chunk (abfd, (bfd_byte *) sec->name, strlen (sec->name));
|
||||||
mmo_flush_chunk (abfd);
|
mmo_flush_chunk (abfd);
|
||||||
/* FIXME: We can get debug sections (.debug_line & Co.) with a section
|
/* FIXME: We can get debug sections (.debug_line & Co.) with a section
|
||||||
flag still having SEC_RELOC set. Investigate. This might be true
|
flag still having SEC_RELOC set. Investigate. This might be true
|
||||||
|
|
12
bfd/opncls.c
12
bfd/opncls.c
|
@ -1,6 +1,6 @@
|
||||||
/* opncls.c -- open and close a BFD.
|
/* opncls.c -- open and close a BFD.
|
||||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
|
||||||
2001, 2002, 2003, 2004
|
2001, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
Written by Cygnus Support.
|
Written by Cygnus Support.
|
||||||
|
@ -980,6 +980,7 @@ get_debug_link_info (bfd *abfd, unsigned long *crc32_out)
|
||||||
unsigned long crc32;
|
unsigned long crc32;
|
||||||
bfd_byte *contents;
|
bfd_byte *contents;
|
||||||
int crc_offset;
|
int crc_offset;
|
||||||
|
char *name;
|
||||||
|
|
||||||
BFD_ASSERT (abfd);
|
BFD_ASSERT (abfd);
|
||||||
BFD_ASSERT (crc32_out);
|
BFD_ASSERT (crc32_out);
|
||||||
|
@ -997,13 +998,14 @@ get_debug_link_info (bfd *abfd, unsigned long *crc32_out)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Crc value is stored after the filename, aligned up to 4 bytes. */
|
/* Crc value is stored after the filename, aligned up to 4 bytes. */
|
||||||
crc_offset = strlen (contents) + 1;
|
name = (char *) contents;
|
||||||
|
crc_offset = strlen (name) + 1;
|
||||||
crc_offset = (crc_offset + 3) & ~3;
|
crc_offset = (crc_offset + 3) & ~3;
|
||||||
|
|
||||||
crc32 = bfd_get_32 (abfd, contents + crc_offset);
|
crc32 = bfd_get_32 (abfd, contents + crc_offset);
|
||||||
|
|
||||||
*crc32_out = crc32;
|
*crc32_out = crc32;
|
||||||
return contents;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1022,7 +1024,7 @@ DESCRIPTION
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
separate_debug_file_exists (const char *name, const unsigned long crc)
|
separate_debug_file_exists (const char *name, const unsigned long crc)
|
||||||
{
|
{
|
||||||
static char buffer [8 * 1024];
|
static unsigned char buffer [8 * 1024];
|
||||||
unsigned long file_crc = 0;
|
unsigned long file_crc = 0;
|
||||||
int fd;
|
int fd;
|
||||||
bfd_size_type count;
|
bfd_size_type count;
|
||||||
|
@ -1286,7 +1288,7 @@ bfd_fill_in_gnu_debuglink_section (bfd *abfd,
|
||||||
char * contents;
|
char * contents;
|
||||||
bfd_size_type crc_offset;
|
bfd_size_type crc_offset;
|
||||||
FILE * handle;
|
FILE * handle;
|
||||||
static char buffer[8 * 1024];
|
static unsigned char buffer[8 * 1024];
|
||||||
size_t count;
|
size_t count;
|
||||||
|
|
||||||
if (abfd == NULL || sect == NULL || filename == NULL)
|
if (abfd == NULL || sect == NULL || filename == NULL)
|
||||||
|
|
|
@ -106,7 +106,7 @@ bfd_pef_print_symbol (abfd, afile, symbol, how)
|
||||||
fprintf (file, " %-5s %s", symbol->section->name, symbol->name);
|
fprintf (file, " %-5s %s", symbol->section->name, symbol->name);
|
||||||
if (strncmp (symbol->name, "__traceback_", strlen ("__traceback_")) == 0)
|
if (strncmp (symbol->name, "__traceback_", strlen ("__traceback_")) == 0)
|
||||||
{
|
{
|
||||||
char *buf = alloca (symbol->udata.i);
|
unsigned char *buf = alloca (symbol->udata.i);
|
||||||
size_t offset = symbol->value + 4;
|
size_t offset = symbol->value + 4;
|
||||||
size_t len = symbol->udata.i;
|
size_t len = symbol->udata.i;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -884,7 +884,8 @@ static int bfd_pef_parse_function_stubs (abfd, codesec, codebuf, codelen,
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
max = loaderlen - (header.loader_strings_offset + imports[index].name);
|
max = loaderlen - (header.loader_strings_offset + imports[index].name);
|
||||||
symname = loaderbuf + header.loader_strings_offset + imports[index].name;
|
symname = (char *) loaderbuf;
|
||||||
|
symname += header.loader_strings_offset + imports[index].name;
|
||||||
namelen = 0;
|
namelen = 0;
|
||||||
for (s = symname; s < (symname + max); s++)
|
for (s = symname; s < (symname + max); s++)
|
||||||
{
|
{
|
||||||
|
@ -978,7 +979,7 @@ static long bfd_pef_parse_symbols (abfd, csym)
|
||||||
count = 0;
|
count = 0;
|
||||||
if (codesec != NULL)
|
if (codesec != NULL)
|
||||||
{
|
{
|
||||||
unsigned long ncount = 0;
|
long ncount = 0;
|
||||||
bfd_pef_parse_traceback_tables (abfd, codesec, codebuf, codelen,
|
bfd_pef_parse_traceback_tables (abfd, codesec, codebuf, codelen,
|
||||||
&ncount, csym);
|
&ncount, csym);
|
||||||
count += ncount;
|
count += ncount;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Support for the generic parts of PE/PEI, for BFD.
|
/* Support for the generic parts of PE/PEI, for BFD.
|
||||||
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
Free Software Foundation, Inc.
|
2005 Free Software Foundation, Inc.
|
||||||
Written by Cygnus Solutions.
|
Written by Cygnus Solutions.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -130,15 +130,6 @@ typedef struct
|
||||||
struct internal_reloc * int_reltab;
|
struct internal_reloc * int_reltab;
|
||||||
}
|
}
|
||||||
pe_ILF_vars;
|
pe_ILF_vars;
|
||||||
|
|
||||||
static asection_ptr pe_ILF_make_a_section PARAMS ((pe_ILF_vars *, const char *, unsigned int, flagword));
|
|
||||||
static void pe_ILF_make_a_reloc PARAMS ((pe_ILF_vars *, bfd_vma, bfd_reloc_code_real_type, asection_ptr));
|
|
||||||
static void pe_ILF_make_a_symbol PARAMS ((pe_ILF_vars *, const char *, const char *, asection_ptr, flagword));
|
|
||||||
static void pe_ILF_save_relocs PARAMS ((pe_ILF_vars *, asection_ptr));
|
|
||||||
static void pe_ILF_make_a_symbol_reloc PARAMS ((pe_ILF_vars *, bfd_vma, bfd_reloc_code_real_type, struct bfd_symbol **, unsigned int));
|
|
||||||
static bfd_boolean pe_ILF_build_a_bfd PARAMS ((bfd *, unsigned int, bfd_byte *, bfd_byte *, unsigned int, unsigned int));
|
|
||||||
static const bfd_target * pe_ILF_object_p PARAMS ((bfd *));
|
|
||||||
static const bfd_target * pe_bfd_object_p PARAMS ((bfd *));
|
|
||||||
#endif /* COFF_IMAGE_WITH_PE */
|
#endif /* COFF_IMAGE_WITH_PE */
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
@ -740,8 +731,8 @@ static jump_table jtab[] =
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
pe_ILF_build_a_bfd (bfd * abfd,
|
pe_ILF_build_a_bfd (bfd * abfd,
|
||||||
unsigned int magic,
|
unsigned int magic,
|
||||||
bfd_byte * symbol_name,
|
char * symbol_name,
|
||||||
bfd_byte * source_dll,
|
char * source_dll,
|
||||||
unsigned int ordinal,
|
unsigned int ordinal,
|
||||||
unsigned int types)
|
unsigned int types)
|
||||||
{
|
{
|
||||||
|
@ -837,10 +828,10 @@ pe_ILF_build_a_bfd (bfd * abfd,
|
||||||
vars.int_reltab = (struct internal_reloc *) ptr;
|
vars.int_reltab = (struct internal_reloc *) ptr;
|
||||||
ptr += SIZEOF_ILF_INT_RELOCS;
|
ptr += SIZEOF_ILF_INT_RELOCS;
|
||||||
|
|
||||||
vars.string_table = ptr;
|
vars.string_table = (char *) ptr;
|
||||||
vars.string_ptr = ptr + STRING_SIZE_SIZE;
|
vars.string_ptr = (char *) ptr + STRING_SIZE_SIZE;
|
||||||
ptr += SIZEOF_ILF_STRINGS;
|
ptr += SIZEOF_ILF_STRINGS;
|
||||||
vars.end_string_ptr = ptr;
|
vars.end_string_ptr = (char *) ptr;
|
||||||
|
|
||||||
/* The remaining space in bim->buffer is used
|
/* The remaining space in bim->buffer is used
|
||||||
by the pe_ILF_make_a_section() function. */
|
by the pe_ILF_make_a_section() function. */
|
||||||
|
@ -930,7 +921,7 @@ pe_ILF_build_a_bfd (bfd * abfd,
|
||||||
id6->contents[0] = ordinal & 0xff;
|
id6->contents[0] = ordinal & 0xff;
|
||||||
id6->contents[1] = ordinal >> 8;
|
id6->contents[1] = ordinal >> 8;
|
||||||
|
|
||||||
strcpy (id6->contents + 2, symbol);
|
strcpy ((char *) id6->contents + 2, symbol);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (import_name_type != IMPORT_ORDINAL)
|
if (import_name_type != IMPORT_ORDINAL)
|
||||||
|
@ -1042,7 +1033,7 @@ pe_ILF_build_a_bfd (bfd * abfd,
|
||||||
|
|
||||||
/* Create an import symbol for the DLL, without the
|
/* Create an import symbol for the DLL, without the
|
||||||
.dll suffix. */
|
.dll suffix. */
|
||||||
ptr = strrchr (source_dll, '.');
|
ptr = (bfd_byte *) strrchr (source_dll, '.');
|
||||||
if (ptr)
|
if (ptr)
|
||||||
* ptr = 0;
|
* ptr = 0;
|
||||||
pe_ILF_make_a_symbol (& vars, "__IMPORT_DESCRIPTOR_", source_dll, NULL, 0);
|
pe_ILF_make_a_symbol (& vars, "__IMPORT_DESCRIPTOR_", source_dll, NULL, 0);
|
||||||
|
@ -1087,8 +1078,8 @@ pe_ILF_object_p (bfd * abfd)
|
||||||
{
|
{
|
||||||
bfd_byte buffer[16];
|
bfd_byte buffer[16];
|
||||||
bfd_byte * ptr;
|
bfd_byte * ptr;
|
||||||
bfd_byte * symbol_name;
|
char * symbol_name;
|
||||||
bfd_byte * source_dll;
|
char * source_dll;
|
||||||
unsigned int machine;
|
unsigned int machine;
|
||||||
bfd_size_type size;
|
bfd_size_type size;
|
||||||
unsigned int ordinal;
|
unsigned int ordinal;
|
||||||
|
@ -1225,11 +1216,12 @@ pe_ILF_object_p (bfd * abfd)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
symbol_name = ptr;
|
symbol_name = (char *) ptr;
|
||||||
source_dll = ptr + strlen (ptr) + 1;
|
source_dll = symbol_name + strlen (symbol_name) + 1;
|
||||||
|
|
||||||
/* Verify that the strings are null terminated. */
|
/* Verify that the strings are null terminated. */
|
||||||
if (ptr[size - 1] != 0 || ((unsigned long) (source_dll - ptr) >= size))
|
if (ptr[size - 1] != 0
|
||||||
|
|| (bfd_size_type) ((bfd_byte *) source_dll - ptr) >= size)
|
||||||
{
|
{
|
||||||
_bfd_error_handler
|
_bfd_error_handler
|
||||||
(_("%B: string not null terminated in ILF object file."), abfd);
|
(_("%B: string not null terminated in ILF object file."), abfd);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* BFD back-end for s-record objects.
|
/* BFD back-end for s-record objects.
|
||||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
2000, 2001, 2002, 2003, 2004
|
2000, 2001, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
|
Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
|
||||||
|
|
||||||
|
@ -1014,7 +1014,8 @@ srec_write_header (abfd)
|
||||||
len = 40;
|
len = 40;
|
||||||
|
|
||||||
return srec_write_record (abfd, 0, (bfd_vma) 0,
|
return srec_write_record (abfd, 0, (bfd_vma) 0,
|
||||||
abfd->filename, abfd->filename + len);
|
(bfd_byte *) abfd->filename,
|
||||||
|
(bfd_byte *) abfd->filename + len);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* vms-hdr.c -- BFD back-end for VMS/VAX (openVMS/VAX) and
|
/* vms-hdr.c -- BFD back-end for VMS/VAX (openVMS/VAX) and
|
||||||
EVAX (openVMS/Alpha) files.
|
EVAX (openVMS/Alpha) files.
|
||||||
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
HDR record handling functions
|
HDR record handling functions
|
||||||
|
@ -225,7 +225,8 @@ get_vms_time_string ()
|
||||||
pnt[10] = 0;
|
pnt[10] = 0;
|
||||||
pnt[16] = 0;
|
pnt[16] = 0;
|
||||||
pnt[24] = 0;
|
pnt[24] = 0;
|
||||||
sprintf (tbuf, "%2s-%3s-%s %s", pnt + 8, pnt + 4, pnt + 20, pnt + 11);
|
sprintf ((char *) tbuf, "%2s-%3s-%s %s",
|
||||||
|
pnt + 8, pnt + 4, pnt + 20, pnt + 11);
|
||||||
#else
|
#else
|
||||||
#include <starlet.h>
|
#include <starlet.h>
|
||||||
struct
|
struct
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* vms-tir.c -- BFD back-end for VAX (openVMS/VAX) and
|
/* vms-tir.c -- BFD back-end for VAX (openVMS/VAX) and
|
||||||
EVAX (openVMS/Alpha) files.
|
EVAX (openVMS/Alpha) files.
|
||||||
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004
|
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
TIR record handling functions
|
TIR record handling functions
|
||||||
|
@ -1598,7 +1598,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr)
|
||||||
case TIR_S_C_CTL_SETRB:
|
case TIR_S_C_CTL_SETRB:
|
||||||
/* Set relocation base: pop stack, set image location counter
|
/* Set relocation base: pop stack, set image location counter
|
||||||
arg: none. */
|
arg: none. */
|
||||||
dummy = _bfd_vms_pop (abfd, &psect);
|
dummy = _bfd_vms_pop (abfd, (int *) &psect);
|
||||||
if (psect >= PRIV (section_count))
|
if (psect >= PRIV (section_count))
|
||||||
alloc_section (abfd, psect);
|
alloc_section (abfd, psect);
|
||||||
image_set_ptr (abfd, (int) psect, (uquad) dummy);
|
image_set_ptr (abfd, (int) psect, (uquad) dummy);
|
||||||
|
@ -1622,7 +1622,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr)
|
||||||
case TIR_S_C_CTL_STLOC:
|
case TIR_S_C_CTL_STLOC:
|
||||||
/* Set location: pop index, restore location counter from index
|
/* Set location: pop index, restore location counter from index
|
||||||
arg: none. */
|
arg: none. */
|
||||||
dummy = _bfd_vms_pop (abfd, &psect);
|
dummy = _bfd_vms_pop (abfd, (int *) &psect);
|
||||||
(*_bfd_error_handler) (_("%s: not fully implemented"),
|
(*_bfd_error_handler) (_("%s: not fully implemented"),
|
||||||
tir_cmd_name (ptr[-1]));
|
tir_cmd_name (ptr[-1]));
|
||||||
break;
|
break;
|
||||||
|
@ -1630,7 +1630,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr)
|
||||||
case TIR_S_C_CTL_STKDL:
|
case TIR_S_C_CTL_STKDL:
|
||||||
/* Stack defined location: pop index, push location counter from index
|
/* Stack defined location: pop index, push location counter from index
|
||||||
arg: none. */
|
arg: none. */
|
||||||
dummy = _bfd_vms_pop (abfd, &psect);
|
dummy = _bfd_vms_pop (abfd, (int *) &psect);
|
||||||
(*_bfd_error_handler) (_("%s: not fully implemented"),
|
(*_bfd_error_handler) (_("%s: not fully implemented"),
|
||||||
tir_cmd_name (ptr[-1]));
|
tir_cmd_name (ptr[-1]));
|
||||||
break;
|
break;
|
||||||
|
|
33
bfd/xsym.c
33
bfd/xsym.c
|
@ -1,5 +1,5 @@
|
||||||
/* xSYM symbol-file support for BFD.
|
/* xSYM symbol-file support for BFD.
|
||||||
Copyright 1999, 2000, 2001, 2002, 2003, 2004
|
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -55,21 +55,20 @@
|
||||||
#define bfd_sym_bfd_link_split_section _bfd_generic_link_split_section
|
#define bfd_sym_bfd_link_split_section _bfd_generic_link_split_section
|
||||||
#define bfd_sym_get_section_contents_in_window _bfd_generic_get_section_contents_in_window
|
#define bfd_sym_get_section_contents_in_window _bfd_generic_get_section_contents_in_window
|
||||||
|
|
||||||
static int pstrcmp PARAMS ((unsigned char *, unsigned char *));
|
|
||||||
static unsigned long compute_offset
|
static unsigned long compute_offset
|
||||||
PARAMS ((unsigned long, unsigned long, unsigned long, unsigned long));
|
PARAMS ((unsigned long, unsigned long, unsigned long, unsigned long));
|
||||||
|
|
||||||
extern const bfd_target sym_vec;
|
extern const bfd_target sym_vec;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
pstrcmp (a, b)
|
pstrcmp (const char *as, const char *bs)
|
||||||
unsigned char *a;
|
|
||||||
unsigned char *b;
|
|
||||||
{
|
{
|
||||||
|
const unsigned char *a = (const unsigned char *) as;
|
||||||
|
const unsigned char *b = (const unsigned char *) bs;
|
||||||
unsigned char clen;
|
unsigned char clen;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
clen = (a[0] > b[0]) ? a[0] : b[0];
|
clen = (a[0] > b[0]) ? b[0] : a[0];
|
||||||
ret = memcmp (a + 1, b + 1, clen);
|
ret = memcmp (a + 1, b + 1, clen);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -79,7 +78,7 @@ pstrcmp (a, b)
|
||||||
else if (a[0] < b[0])
|
else if (a[0] < b[0])
|
||||||
return -1;
|
return -1;
|
||||||
else
|
else
|
||||||
return 0;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long
|
static unsigned long
|
||||||
|
@ -255,7 +254,7 @@ bfd_sym_read_version (abfd, version)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
bfd_sym_version *version;
|
bfd_sym_version *version;
|
||||||
{
|
{
|
||||||
unsigned char version_string[32];
|
char version_string[32];
|
||||||
long ret;
|
long ret;
|
||||||
|
|
||||||
ret = bfd_bread (version_string, sizeof (version_string), abfd);
|
ret = bfd_bread (version_string, sizeof (version_string), abfd);
|
||||||
|
@ -1207,12 +1206,12 @@ bfd_sym_symbol_name (abfd, index)
|
||||||
sdata = abfd->tdata.sym_data;
|
sdata = abfd->tdata.sym_data;
|
||||||
|
|
||||||
if (index == 0)
|
if (index == 0)
|
||||||
return "";
|
return (const unsigned char *) "";
|
||||||
|
|
||||||
index *= 2;
|
index *= 2;
|
||||||
if ((index / sdata->header.dshb_page_size)
|
if ((index / sdata->header.dshb_page_size)
|
||||||
> sdata->header.dshb_nte.dti_page_count)
|
> sdata->header.dshb_nte.dti_page_count)
|
||||||
return "\009[INVALID]";
|
return (const unsigned char *) "\09[INVALID]";
|
||||||
|
|
||||||
return (const unsigned char *) sdata->name_table + index;
|
return (const unsigned char *) sdata->name_table + index;
|
||||||
}
|
}
|
||||||
|
@ -1225,7 +1224,7 @@ bfd_sym_module_name (abfd, index)
|
||||||
bfd_sym_modules_table_entry entry;
|
bfd_sym_modules_table_entry entry;
|
||||||
|
|
||||||
if (bfd_sym_fetch_modules_table_entry (abfd, &entry, index) < 0)
|
if (bfd_sym_fetch_modules_table_entry (abfd, &entry, index) < 0)
|
||||||
return "\011[INVALID]";
|
return (const unsigned char *) "\09[INVALID]";
|
||||||
|
|
||||||
return bfd_sym_symbol_name (abfd, entry.mte_nte_index);
|
return bfd_sym_symbol_name (abfd, entry.mte_nte_index);
|
||||||
}
|
}
|
||||||
|
@ -1727,26 +1726,28 @@ bfd_sym_print_type_information (abfd, f, buf, len, offset, offsetptr)
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
{
|
{
|
||||||
unsigned long value;
|
long value;
|
||||||
|
|
||||||
fprintf (f, "scalar (0x%x) of ", type);
|
fprintf (f, "scalar (0x%x) of ", type);
|
||||||
bfd_sym_print_type_information (abfd, f, buf, len, offset, &offset);
|
bfd_sym_print_type_information (abfd, f, buf, len, offset, &offset);
|
||||||
bfd_sym_fetch_long (buf, len, offset, &offset, &value);
|
bfd_sym_fetch_long (buf, len, offset, &offset, &value);
|
||||||
fprintf (f, " (%lu)", value);
|
fprintf (f, " (%lu)", (unsigned long) value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
{
|
{
|
||||||
unsigned long lower, upper, nelem;
|
long lower, upper, nelem;
|
||||||
unsigned long i;
|
int i;
|
||||||
|
|
||||||
fprintf (f, "enumeration (0x%x) of ", type);
|
fprintf (f, "enumeration (0x%x) of ", type);
|
||||||
bfd_sym_print_type_information (abfd, f, buf, len, offset, &offset);
|
bfd_sym_print_type_information (abfd, f, buf, len, offset, &offset);
|
||||||
bfd_sym_fetch_long (buf, len, offset, &offset, &lower);
|
bfd_sym_fetch_long (buf, len, offset, &offset, &lower);
|
||||||
bfd_sym_fetch_long (buf, len, offset, &offset, &upper);
|
bfd_sym_fetch_long (buf, len, offset, &offset, &upper);
|
||||||
bfd_sym_fetch_long (buf, len, offset, &offset, &nelem);
|
bfd_sym_fetch_long (buf, len, offset, &offset, &nelem);
|
||||||
fprintf (f, " from %lu to %lu with %lu elements: ", lower, upper, nelem);
|
fprintf (f, " from %lu to %lu with %lu elements: ",
|
||||||
|
(unsigned long) lower, (unsigned long) upper,
|
||||||
|
(unsigned long) nelem);
|
||||||
|
|
||||||
for (i = 0; i < nelem; i++)
|
for (i = 0; i < nelem; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Configurable Xtensa ISA support.
|
/* Configurable Xtensa ISA support.
|
||||||
Copyright 2003, 2004 Free Software Foundation, Inc.
|
Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
|
||||||
|
@ -120,7 +120,9 @@ byte_to_bit_index (int byte_index)
|
||||||
both. */
|
both. */
|
||||||
|
|
||||||
int
|
int
|
||||||
xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn, char *cp,
|
xtensa_insnbuf_to_chars (xtensa_isa isa,
|
||||||
|
const xtensa_insnbuf insn,
|
||||||
|
unsigned char *cp,
|
||||||
int num_chars)
|
int num_chars)
|
||||||
{
|
{
|
||||||
xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
|
xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
|
||||||
|
@ -178,7 +180,9 @@ xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn, char *cp,
|
||||||
by endianness. */
|
by endianness. */
|
||||||
|
|
||||||
void
|
void
|
||||||
xtensa_insnbuf_from_chars (xtensa_isa isa, xtensa_insnbuf insn, const char *cp,
|
xtensa_insnbuf_from_chars (xtensa_isa isa,
|
||||||
|
xtensa_insnbuf insn,
|
||||||
|
const unsigned char *cp,
|
||||||
int num_chars)
|
int num_chars)
|
||||||
{
|
{
|
||||||
xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
|
xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
|
||||||
|
@ -392,7 +396,7 @@ xtensa_isa_maxlength (xtensa_isa isa)
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
xtensa_isa_length_from_chars (xtensa_isa isa, const char *cp)
|
xtensa_isa_length_from_chars (xtensa_isa isa, const unsigned char *cp)
|
||||||
{
|
{
|
||||||
xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
|
xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
|
||||||
return (intisa->length_decode_fn) (cp);
|
return (intisa->length_decode_fn) (cp);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Xtensa configuration-specific ISA information.
|
/* Xtensa configuration-specific ISA information.
|
||||||
Copyright 2003, 2004 Free Software Foundation, Inc.
|
Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
|
||||||
|
@ -9074,7 +9074,7 @@ static int length_table[16] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
length_decoder (const char *insn)
|
length_decoder (const unsigned char *insn)
|
||||||
{
|
{
|
||||||
int op0 = (insn[0] >> 4) & 0xf;
|
int op0 = (insn[0] >> 4) & 0xf;
|
||||||
return length_table[op0];
|
return length_table[op0];
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2005-02-21 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* xtensa-isa-internal.h (xtensa_length_decode_fn): Warning fix.
|
||||||
|
* xtensa-isa.h (xtensa_insnbuf_to_chars): Likewise.
|
||||||
|
(xtensa_insnbuf_from_chars, xtensa_isa_length_from_chars): Likewise.
|
||||||
|
|
||||||
2005-02-14 Paolo Bonzini <bonzini@gnu.org>
|
2005-02-14 Paolo Bonzini <bonzini@gnu.org>
|
||||||
|
|
||||||
PR bootstrap/19818
|
PR bootstrap/19818
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2005-02-21 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* xcoff.h (struct xcoff_loader_info): Warning fix.
|
||||||
|
|
||||||
2005-01-10 Inderpreet Singh <inderpreetb@noida.hcltech.com>
|
2005-01-10 Inderpreet Singh <inderpreetb@noida.hcltech.com>
|
||||||
|
|
||||||
* maxq.h (F_MAXQ10, F_MAXQ20): Define.
|
* maxq.h (F_MAXQ10, F_MAXQ20): Define.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Internal format of XCOFF object file data structures for BFD.
|
/* Internal format of XCOFF object file data structures for BFD.
|
||||||
|
|
||||||
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
|
Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
|
||||||
|
|
||||||
|
@ -409,7 +409,7 @@ struct xcoff_loader_info
|
||||||
size_t string_size;
|
size_t string_size;
|
||||||
|
|
||||||
/* String table. */
|
/* String table. */
|
||||||
bfd_byte *strings;
|
char *strings;
|
||||||
|
|
||||||
/* Allocated size of string table. */
|
/* Allocated size of string table. */
|
||||||
size_t string_alc;
|
size_t string_alc;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Internal definitions for configurable Xtensa ISA support.
|
/* Internal definitions for configurable Xtensa ISA support.
|
||||||
Copyright 2003, 2004 Free Software Foundation, Inc.
|
Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ typedef int (*xtensa_do_reloc_fn) (uint32 *, uint32);
|
||||||
typedef int (*xtensa_undo_reloc_fn) (uint32 *, uint32);
|
typedef int (*xtensa_undo_reloc_fn) (uint32 *, uint32);
|
||||||
typedef void (*xtensa_opcode_encode_fn) (xtensa_insnbuf);
|
typedef void (*xtensa_opcode_encode_fn) (xtensa_insnbuf);
|
||||||
typedef int (*xtensa_format_decode_fn) (const xtensa_insnbuf);
|
typedef int (*xtensa_format_decode_fn) (const xtensa_insnbuf);
|
||||||
typedef int (*xtensa_length_decode_fn) (const char *);
|
typedef int (*xtensa_length_decode_fn) (const unsigned char *);
|
||||||
|
|
||||||
typedef struct xtensa_format_internal_struct
|
typedef struct xtensa_format_internal_struct
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Interface definition for configurable Xtensa ISA support.
|
/* Interface definition for configurable Xtensa ISA support.
|
||||||
Copyright 2003, 2004 Free Software Foundation, Inc.
|
Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
|
||||||
|
@ -209,11 +209,11 @@ xtensa_insnbuf_free (xtensa_isa isa, xtensa_insnbuf buf);
|
||||||
|
|
||||||
extern int
|
extern int
|
||||||
xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn,
|
xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn,
|
||||||
char *cp, int num_chars);
|
unsigned char *cp, int num_chars);
|
||||||
|
|
||||||
extern void
|
extern void
|
||||||
xtensa_insnbuf_from_chars (xtensa_isa isa, xtensa_insnbuf insn,
|
xtensa_insnbuf_from_chars (xtensa_isa isa, xtensa_insnbuf insn,
|
||||||
const char *cp, int num_chars);
|
const unsigned char *cp, int num_chars);
|
||||||
|
|
||||||
|
|
||||||
/* ISA information. */
|
/* ISA information. */
|
||||||
|
@ -242,7 +242,7 @@ xtensa_isa_maxlength (xtensa_isa isa);
|
||||||
XTENSA_UNDEFINED on error. */
|
XTENSA_UNDEFINED on error. */
|
||||||
|
|
||||||
extern int
|
extern int
|
||||||
xtensa_isa_length_from_chars (xtensa_isa isa, const char *cp);
|
xtensa_isa_length_from_chars (xtensa_isa isa, const unsigned char *cp);
|
||||||
|
|
||||||
|
|
||||||
/* Get the number of stages in the processor's pipeline. The pipeline
|
/* Get the number of stages in the processor's pipeline. The pipeline
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue