+2003-06-05 Jim Blandy <jimb@redhat.com>
+
+ Use gdbarch methods for solib stuff on PowerPC Linux.
+ * config/powerpc/tm-linux.h (IN_SOLIB_CALL_TRAMPOLINE,
+ SKIP_TRAMPOLINE_CODE): #undef these, so the gdbarch methods will
+ show through. Remove later #definition of SKIP_TRAMPOLINE_CODE.
+ (ppc_linux_skip_trampoline_code): Delete declaration.
+ * ppc-linux-tdep.c (ppc_linux_init_abi): Register
+ IN_SOLIB_CALL_TRAMPOLINE and SKIP_TRAMPOLINE_CODE methods here,
+ giving the same effect as the #definitions above.
+ (ppc_linux_skip_trampoline_code): Make this static.
+
2003-05-29 Jim Blandy <jimb@redhat.com>
Support gdbserver on 64-bit PowerPC Linux.
#undef SKIP_TRAMPOLINE_CODE
#include "config/tm-linux.h"
+/* We've multi-arched these. (Note that this completely undoes the
+ effect of config/tm-linux.h #including config/tm-sysv4.h.) */
+#undef IN_SOLIB_CALL_TRAMPOLINE
+#undef SKIP_TRAMPOLINE_CODE
+
/* We can single step on linux */
#undef SOFTWARE_SINGLE_STEP
#define SOFTWARE_SINGLE_STEP(p,q) internal_error (__FILE__, __LINE__, "Will never execute!")
in symfile.c) */
#undef IBM6000_TARGET
-extern CORE_ADDR ppc_linux_skip_trampoline_code (CORE_ADDR pc);
-#undef SKIP_TRAMPOLINE_CODE
-#define SKIP_TRAMPOLINE_CODE(pc) ppc_linux_skip_trampoline_code (pc)
-
extern int ppc_linux_in_sigtramp (CORE_ADDR pc, char *func_name);
#undef IN_SIGTRAMP
#define IN_SIGTRAMP(pc,func_name) ppc_linux_in_sigtramp (pc,func_name)
&& insn_is_sigreturn (extract_unsigned_integer (buf, 4))));
}
-CORE_ADDR
+static CORE_ADDR
ppc_linux_skip_trampoline_code (CORE_ADDR pc)
{
char buf[4];
set_solib_svr4_fetch_link_map_offsets
(gdbarch, ppc_linux_svr4_fetch_link_map_offsets);
}
+
+ /* Shared library handling. */
+ set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section);
+ set_gdbarch_skip_trampoline_code (gdbarch, ppc_linux_skip_trampoline_code);
}
void