summaryrefslogtreecommitdiff
path: root/gdb/elfread.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2013-02-22 23:24:22 +0000
committerAlan Modra <amodra@bigpond.net.au>2013-02-22 23:24:22 +0000
commitf26434ca92423baf31f26ff5ca95aff90e02152a (patch)
tree3e2019dec671900a22f9320a3c70fdd22c4442e0 /gdb/elfread.c
parentef977039c58644e42f14a1ab3224b368632c1fe4 (diff)
downloadgdb-f26434ca92423baf31f26ff5ca95aff90e02152a.tar.gz
* elfread.c (elf_symtab_read): Do not use udata.p here to find
symbol size. * ppc64-tdep.c (ppc64_elf_make_msymbol_special): New function. * ppc64-tdep.h (ppc64_elf_make_msymbol_special): Declare. * ppc-linux-tdep.c (ppc_linux_init_abi): Set up to use the above. * ppcfbsd-tdep.c (ppcfbsd_init_abi): Likewise.
Diffstat (limited to 'gdb/elfread.c')
-rw-r--r--gdb/elfread.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 4b9562715cb..43c32b2c63e 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -556,21 +556,14 @@ elf_symtab_read (struct objfile *objfile, int type,
if (msym)
{
- /* Pass symbol size field in via BFD. FIXME!!! */
- elf_symbol_type *elf_sym;
-
/* NOTE: uweigand-20071112: A synthetic symbol does not have an
- ELF-private part. However, in some cases (e.g. synthetic
- 'dot' symbols on ppc64) the udata.p entry is set to point back
- to the original ELF symbol it was derived from. Get the size
- from that symbol. */
+ ELF-private part. */
if (type != ST_SYNTHETIC)
- elf_sym = (elf_symbol_type *) sym;
- else
- elf_sym = (elf_symbol_type *) sym->udata.p;
-
- if (elf_sym)
- SET_MSYMBOL_SIZE (msym, elf_sym->internal_elf_sym.st_size);
+ {
+ /* Pass symbol size field in via BFD. FIXME!!! */
+ elf_symbol_type *elf_sym = (elf_symbol_type *) sym;
+ SET_MSYMBOL_SIZE (msym, elf_sym->internal_elf_sym.st_size);
+ }
msym->filename = filesymname;
gdbarch_elf_make_msymbol_special (gdbarch, sym, msym);