diff options
Diffstat (limited to 'gdb/ppc-linux-tdep.c')
-rw-r--r-- | gdb/ppc-linux-tdep.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c index 96753b6..1c86f0e 100644 --- a/gdb/ppc-linux-tdep.c +++ b/gdb/ppc-linux-tdep.c @@ -685,43 +685,6 @@ static struct insn_pattern ppc64_standard_linkage[] = #define PPC64_STANDARD_LINKAGE_LEN \ (sizeof (ppc64_standard_linkage) / sizeof (ppc64_standard_linkage[0])) - -/* Recognize a 64-bit PowerPC GNU/Linux linkage function --- what GDB - calls a "solib trampoline". */ -static int -ppc64_in_solib_call_trampoline (CORE_ADDR pc, char *name) -{ - /* Detecting solib call trampolines on PPC64 GNU/Linux is a pain. - - It's not specifically solib call trampolines that are the issue. - Any call from one function to another function that uses a - different TOC requires a trampoline, to save the caller's TOC - pointer and then load the callee's TOC. An executable or shared - library may have more than one TOC, so even intra-object calls - may require a trampoline. Since executable and shared libraries - will all have their own distinct TOCs, every inter-object call is - also an inter-TOC call, and requires a trampoline --- so "solib - call trampolines" are just a special case. - - The 64-bit PowerPC GNU/Linux ABI calls these call trampolines - "linkage functions". Since they need to be near the functions - that call them, they all appear in .text, not in any special - section. The .plt section just contains an array of function - descriptors, from which the linkage functions load the callee's - entry point, TOC value, and environment pointer. So - in_plt_section is useless. The linkage functions don't have any - special linker symbols to name them, either. - - The only way I can see to recognize them is to actually look at - their code. They're generated by ppc_build_one_stub and some - other functions in bfd/elf64-ppc.c, so that should show us all - the instruction sequences we need to recognize. */ - unsigned int insn[PPC64_STANDARD_LINKAGE_LEN]; - - return insns_match_pattern (pc, ppc64_standard_linkage, insn); -} - - /* When the dynamic linker is doing lazy symbol resolution, the first call to a function in another object will go like this: @@ -1098,9 +1061,6 @@ ppc_linux_init_abi (struct gdbarch_info info, function descriptors). */ set_gdbarch_convert_from_func_ptr_addr (gdbarch, ppc64_linux_convert_from_func_ptr_addr); - - set_gdbarch_in_solib_call_trampoline - (gdbarch, ppc64_in_solib_call_trampoline); set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code); /* PPC64 malloc's entry-point is called ".malloc". */ |