diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-10-31 20:24:32 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-10-31 20:24:32 +0000 |
commit | e8ce19c0cdf50f1e6caf4f1fe3ceffc765e80439 (patch) | |
tree | ecf6fa5fe60fedd4d211b45e0996a133f655fa10 /gdb/ppc-linux-tdep.c | |
parent | af380d6174d81b323d02d6b0acf02828d360b816 (diff) | |
download | gdb-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.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". */ |