gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 28 Mar 2011 20:26:24 +0000 (20:26 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 28 Mar 2011 20:26:24 +0000 (20:26 +0000)
commit07be84bf8f6a00301ce539a651d1bc717e402b8f
tree42a487e082944e82b3da5d47b1c97d4cbca54d2d
parent300f8e104fa748aa73b49f38add5a38d93ce41a2
gdb/
STT_GNU_IFUNC reader implementation.
* elfread.c: Include gdbtypes.h, value.h and infcall.h.
(SYMBOL_GOT_PLT_SUFFIX, elf_rel_plt_read)
(elf_objfile_gnu_ifunc_cache_data, struct elf_gnu_ifunc_cache)
(elf_gnu_ifunc_cache_hash, elf_gnu_ifunc_cache_eq)
(elf_gnu_ifunc_record_cache, elf_gnu_ifunc_resolve_by_cache)
(elf_gnu_ifunc_resolve_by_got, elf_gnu_ifunc_resolve_name)
(elf_gnu_ifunc_resolve_addr): New.
(elf_symfile_read): Call elf_rel_plt_read.
(elf_gnu_ifunc_fns): New.
(_initialize_elfread): Initialize elf_objfile_gnu_ifunc_cache_data.
Install elf_gnu_ifunc_fns.
* infcall.c (find_function_return_type): New function.
(find_function_addr): Resolve TYPE_GNU_IFUNC functions, if possible.
* minsyms.c (stub_gnu_ifunc_resolve_addr)
(stub_gnu_ifunc_resolve_name): New functions.
(stub_gnu_ifunc_fns, gnu_ifunc_fns_p): New variables.
* symtab.h (struct gnu_ifunc_fns, gnu_ifunc_resolve_addr)
(gnu_ifunc_resolve_name, gnu_ifunc_fns_p): New.
gdb/ChangeLog
gdb/elfread.c
gdb/infcall.c
gdb/minsyms.c
gdb/symtab.h