* mips-linux-tdep.c: Include "frame.h".

(mips_linux_in_dynsym_stub, mips_linux_in_dynsym_resolve_code)
	(mips_linux_skip_resolver): New functions.
	(mips_linux_init_abi): Call set_gdbarch_skip_solib_resolver
	and set_gdbarch_in_solib_call_trampoline.
	* mips-tdep.c (mips_gdbarch_init): Move gdbarch_init_osabi call
	to after set_gdbarch_in_solib_return_trampoline.  Only set the
	solib hooks to mips16 functions if the OS ABI is unknown.
	* config/mips/tm-linux.h (IN_SOLIB_CALL_TRAMPOLINE): Undefine after
	including "config/tm-linux.h".
	(IN_SOLIB_DYNSYM_RESOLVE_CODE): Define.
	* Makefile.in (mips-linux-tdep.o): Update.
This commit is contained in:
Daniel Jacobowitz
2004-02-11 18:47:27 +00:00
parent 87b3ede8af
commit 6de918a6f5
5 changed files with 167 additions and 8 deletions

View File

@ -5815,13 +5815,22 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
is sitting on? */
set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
/* Hook in OS ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
set_gdbarch_skip_trampoline_code (gdbarch, mips_skip_stub);
set_gdbarch_in_solib_call_trampoline (gdbarch, mips_in_call_stub);
set_gdbarch_in_solib_return_trampoline (gdbarch, mips_in_return_stub);
/* NOTE drow/2004-02-11: We overload the core solib trampoline code
to support MIPS16. This is a bad thing. Make sure not to do it
if we have an OS ABI that actually supports shared libraries, since
shared library support is more important. If we have an OS someday
that supports both shared libraries and MIPS16, we'll have to find
a better place for these. */
if (info.osabi == GDB_OSABI_UNKNOWN)
{
set_gdbarch_in_solib_call_trampoline (gdbarch, mips_in_call_stub);
set_gdbarch_in_solib_return_trampoline (gdbarch, mips_in_return_stub);
}
/* Hook in OS ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
return gdbarch;
}