aboutsummaryrefslogtreecommitdiff
path: root/gdb/ppc-linux-tdep.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-10-31 20:24:32 +0000
committerAndrew Cagney <cagney@redhat.com>2004-10-31 20:24:32 +0000
commite8ce19c0cdf50f1e6caf4f1fe3ceffc765e80439 (patch)
treeecf6fa5fe60fedd4d211b45e0996a133f655fa10 /gdb/ppc-linux-tdep.c
parentaf380d6174d81b323d02d6b0acf02828d360b816 (diff)
downloadgdb-e8ce19c0cdf50f1e6caf4f1fe3ceffc765e80439.zip
gdb-e8ce19c0cdf50f1e6caf4f1fe3ceffc765e80439.tar.gz
gdb-e8ce19c0cdf50f1e6caf4f1fe3ceffc765e80439.tar.bz2
2004-10-31 Andrew Cagney <cagney@gnu.org>
* armnbsd-tdep.c (arm_netbsd_aout_init_abi) (arm_netbsd_aout_in_solib_call_trampoline): Do not set in_solib_call_trampoline, delete corresponding unused function. * vaxnbsd-tdep.c (vaxnbsd_aout_in_solib_call_trampoline) (vaxnbsd_aout_init_abi): Ditto. * sparcnbsd-tdep.c (sparcnbsd_aout_in_solib_call_trampoline) (sparc32nbsd_aout_init_abi): Ditto. * ppc-linux-tdep.c (ppc64_in_solib_call_trampoline) (ppc_linux_init_abi): Ditto. * ns32knbsd-tdep.c (ns32knbsd_aout_in_solib_call_trampoline) (ns32knbsd_init_abi_aout): Ditto. * mips-tdep.c (mips_in_call_stub, mips_gdbarch_init): Ditto. * mips-linux-tdep.c (mips_linux_init_abi): Ditto. * m68kbsd-tdep.c (m68kbsd_aout_in_solib_call_trampoline) (m68kbsd_aout_init_abi): Ditto. * i386-cygwin-tdep.c (i386_cygwin_in_solib_call_trampoline) (i386_cygwin_init_abi): Ditto. * i386bsd-tdep.c (i386bsd_aout_in_solib_call_trampoline) (i386bsd_init_abi): Ditto.
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". */