aboutsummaryrefslogtreecommitdiff
path: root/gdb/ppc-linux-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/ppc-linux-tdep.c')
-rw-r--r--gdb/ppc-linux-tdep.c40
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". */