mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-10 12:22:20 +08:00
bfd/
* syms.c (BSF_SYNTHETIC): New flag. * elf.c (_bfd_elf_get_synthetic_symtab): Set it. * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise. * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise. * bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour for synthetic symbols. * bfd-in2.h: Regenerate. opcodes/ * mips-dis.c (_print_insn_mips): Use bfd_asymbol_flavour to check for ELF symbols.
This commit is contained in:
@ -1,3 +1,13 @@
|
||||
2008-06-30 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* syms.c (BSF_SYNTHETIC): New flag.
|
||||
* elf.c (_bfd_elf_get_synthetic_symtab): Set it.
|
||||
* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise.
|
||||
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
|
||||
* bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour
|
||||
for synthetic symbols.
|
||||
* bfd-in2.h: Regenerate.
|
||||
|
||||
2008-06-30 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):
|
||||
|
@ -231,7 +231,10 @@ typedef const struct reloc_howto_struct reloc_howto_type;
|
||||
#define bfd_asymbol_name(x) ((x)->name)
|
||||
/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
|
||||
#define bfd_asymbol_bfd(x) ((x)->the_bfd)
|
||||
#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
|
||||
#define bfd_asymbol_flavour(x) \
|
||||
(((x)->flags & BSF_SYNTHETIC) != 0 \
|
||||
? bfd_target_unknown_flavour \
|
||||
: bfd_asymbol_bfd (x)->xvec->flavour)
|
||||
|
||||
/* A canonical archive symbol. */
|
||||
/* This is a type pun with struct ranlib on purpose! */
|
||||
|
@ -238,7 +238,10 @@ typedef const struct reloc_howto_struct reloc_howto_type;
|
||||
#define bfd_asymbol_name(x) ((x)->name)
|
||||
/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
|
||||
#define bfd_asymbol_bfd(x) ((x)->the_bfd)
|
||||
#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
|
||||
#define bfd_asymbol_flavour(x) \
|
||||
(((x)->flags & BSF_SYNTHETIC) != 0 \
|
||||
? bfd_target_unknown_flavour \
|
||||
: bfd_asymbol_bfd (x)->xvec->flavour)
|
||||
|
||||
/* A canonical archive symbol. */
|
||||
/* This is a type pun with struct ranlib on purpose! */
|
||||
@ -4502,6 +4505,9 @@ typedef struct bfd_symbol
|
||||
with the expression tree serialized in the symbol name. */
|
||||
#define BSF_SRELC 0x100000
|
||||
|
||||
/* This symbol was created by bfd_get_synthetic_symtab. */
|
||||
#define BSF_SYNTHETIC 0x200000
|
||||
|
||||
flagword flags;
|
||||
|
||||
/* A pointer to the section to which this symbol is
|
||||
|
@ -8785,6 +8785,7 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd,
|
||||
we are defining a symbol, ensure one of them is set. */
|
||||
if ((s->flags & BSF_LOCAL) == 0)
|
||||
s->flags |= BSF_GLOBAL;
|
||||
s->flags |= BSF_SYNTHETIC;
|
||||
s->section = plt;
|
||||
s->value = addr - plt->vma;
|
||||
s->name = names;
|
||||
|
@ -2450,6 +2450,7 @@ ppc_elf_get_synthetic_symtab (bfd *abfd, long symcount, asymbol **syms,
|
||||
we are defining a symbol, ensure one of them is set. */
|
||||
if ((s->flags & BSF_LOCAL) == 0)
|
||||
s->flags |= BSF_GLOBAL;
|
||||
s->flags |= BSF_SYNTHETIC;
|
||||
s->section = glink;
|
||||
s->value = stub_vma - glink->vma;
|
||||
s->name = names;
|
||||
@ -2466,7 +2467,7 @@ ppc_elf_get_synthetic_symtab (bfd *abfd, long symcount, asymbol **syms,
|
||||
/* Add a symbol at the start of the glink branch table. */
|
||||
memset (s, 0, sizeof *s);
|
||||
s->the_bfd = abfd;
|
||||
s->flags = BSF_GLOBAL;
|
||||
s->flags = BSF_GLOBAL | BSF_SYNTHETIC;
|
||||
s->section = glink;
|
||||
s->value = glink_vma - glink->vma;
|
||||
s->name = names;
|
||||
@ -2480,7 +2481,7 @@ ppc_elf_get_synthetic_symtab (bfd *abfd, long symcount, asymbol **syms,
|
||||
/* Add a symbol for the glink PLT resolver. */
|
||||
memset (s, 0, sizeof *s);
|
||||
s->the_bfd = abfd;
|
||||
s->flags = BSF_GLOBAL;
|
||||
s->flags = BSF_GLOBAL | BSF_SYNTHETIC;
|
||||
s->section = glink;
|
||||
s->value = resolv_vma - glink->vma;
|
||||
s->name = names;
|
||||
|
@ -2954,6 +2954,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd,
|
||||
size_t len;
|
||||
|
||||
*s = *syms[i];
|
||||
s->flags |= BSF_SYNTHETIC;
|
||||
s->section = sym->section;
|
||||
s->value = sym->value + r->addend;
|
||||
s->name = names;
|
||||
@ -3124,6 +3125,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd,
|
||||
if ((sec->flags & SEC_CODE) != 0)
|
||||
s->section = sec;
|
||||
}
|
||||
s->flags |= BSF_SYNTHETIC;
|
||||
s->value = ent - s->section->vma;
|
||||
s->name = names;
|
||||
*names++ = '.';
|
||||
@ -3145,7 +3147,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd,
|
||||
/* Add a symbol for the main glink trampoline. */
|
||||
memset (s, 0, sizeof *s);
|
||||
s->the_bfd = abfd;
|
||||
s->flags = BSF_GLOBAL;
|
||||
s->flags = BSF_GLOBAL | BSF_SYNTHETIC;
|
||||
s->section = glink;
|
||||
s->value = resolv_vma - glink->vma;
|
||||
s->name = names;
|
||||
@ -3181,6 +3183,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd,
|
||||
we are defining a symbol, ensure one of them is set. */
|
||||
if ((s->flags & BSF_LOCAL) == 0)
|
||||
s->flags |= BSF_GLOBAL;
|
||||
s->flags |= BSF_SYNTHETIC;
|
||||
s->section = glink;
|
||||
s->value = glink_vma - glink->vma;
|
||||
s->name = names;
|
||||
|
@ -297,6 +297,9 @@ CODE_FRAGMENT
|
||||
. with the expression tree serialized in the symbol name. *}
|
||||
.#define BSF_SRELC 0x100000
|
||||
.
|
||||
. {* This symbol was created by bfd_get_synthetic_symtab. *}
|
||||
.#define BSF_SYNTHETIC 0x200000
|
||||
.
|
||||
. flagword flags;
|
||||
.
|
||||
. {* A pointer to the section to which this symbol is
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-06-30 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* mips-dis.c (_print_insn_mips): Use bfd_asymbol_flavour to check
|
||||
for ELF symbols.
|
||||
|
||||
2008-06-25 Peter Bergner <bergner@vnet.ibm.com>
|
||||
|
||||
* ppc-dis.c (powerpc_init_dialect): Handle -M464.
|
||||
|
@ -2066,8 +2066,8 @@ _print_insn_mips (bfd_vma memaddr,
|
||||
|
||||
#if SYMTAB_AVAILABLE
|
||||
if (info->mach == bfd_mach_mips16
|
||||
|| (info->flavour == bfd_target_elf_flavour
|
||||
&& info->symbols != NULL
|
||||
|| (info->symbols != NULL
|
||||
&& bfd_asymbol_flavour (*info->symbols) == bfd_target_elf_flavour
|
||||
&& ((*(elf_symbol_type **) info->symbols)->internal_elf_sym.st_other
|
||||
== STO_MIPS16)))
|
||||
return print_insn_mips16 (memaddr, info);
|
||||
|
Reference in New Issue
Block a user