* glibc-tdep.h (struct gdbarch): Declare opaque.
(glibc_skip_solib_resolver): Adjust prototype. * glibc-tdep.c (glibc_skip_solib_resolver): Adjust. * arm-linux-tdep.c (arm_linux_skip_solib_resolver): Remove. (arm_linux_init_abi): Set skip_solib_resolver. * i386-linux-tdep.c (i386_linux_skip_solib_resolver): Remove. (i386_linux_init_abi): Set skip_solib_resolver. * config/arm/tm-linux.h (SKIP_SOLIB_RESOLVER): Remove. (arm_linux_skip_solib_resolver): Remove prototype. * config/i386/tm-linux.h (SKIP_SOLIB_RESOLVER): Remove. (i386_linux_skip_solib_resolver): Remove prototype.
This commit is contained in:
parent
9eda08897d
commit
bb41a796b6
@ -1,3 +1,17 @@
|
||||
2003-11-15 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* glibc-tdep.h (struct gdbarch): Declare opaque.
|
||||
(glibc_skip_solib_resolver): Adjust prototype.
|
||||
* glibc-tdep.c (glibc_skip_solib_resolver): Adjust.
|
||||
* arm-linux-tdep.c (arm_linux_skip_solib_resolver): Remove.
|
||||
(arm_linux_init_abi): Set skip_solib_resolver.
|
||||
* i386-linux-tdep.c (i386_linux_skip_solib_resolver): Remove.
|
||||
(i386_linux_init_abi): Set skip_solib_resolver.
|
||||
* config/arm/tm-linux.h (SKIP_SOLIB_RESOLVER): Remove.
|
||||
(arm_linux_skip_solib_resolver): Remove prototype.
|
||||
* config/i386/tm-linux.h (SKIP_SOLIB_RESOLVER): Remove.
|
||||
(i386_linux_skip_solib_resolver): Remove prototype.
|
||||
|
||||
2003-11-14 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* gdbarch.sh (skip_solib_resolver): Change into a multi-arch
|
||||
|
@ -387,12 +387,6 @@ arm_linux_svr4_fetch_link_map_offsets (void)
|
||||
return lmp;
|
||||
}
|
||||
|
||||
CORE_ADDR
|
||||
arm_linux_skip_solib_resolver (CORE_ADDR pc)
|
||||
{
|
||||
return glibc_skip_solib_resolver (pc);
|
||||
}
|
||||
|
||||
/* The constants below were determined by examining the following files
|
||||
in the linux kernel sources:
|
||||
|
||||
@ -506,6 +500,7 @@ arm_linux_init_abi (struct gdbarch_info info,
|
||||
/* Shared library handling. */
|
||||
set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section);
|
||||
set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
|
||||
set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -39,14 +39,6 @@
|
||||
/* We've multi-arched this. */
|
||||
#undef SKIP_TRAMPOLINE_CODE
|
||||
|
||||
/* When we call a function in a shared library, and the PLT sends us
|
||||
into the dynamic linker to find the function's real address, we
|
||||
need to skip over the dynamic linker call. This function decides
|
||||
when to skip, and where to skip to. See the comments for
|
||||
SKIP_SOLIB_RESOLVER at the top of infrun.c. */
|
||||
extern CORE_ADDR arm_linux_skip_solib_resolver (CORE_ADDR pc);
|
||||
#define SKIP_SOLIB_RESOLVER arm_linux_skip_solib_resolver
|
||||
|
||||
/* When we call a function in a shared library, and the PLT sends us
|
||||
into the dynamic linker to find the function's real address, we
|
||||
need to skip over the dynamic linker call. This function decides
|
||||
|
@ -29,14 +29,6 @@
|
||||
/* The following works around a problem with /usr/include/sys/procfs.h */
|
||||
#define sys_quotactl 1
|
||||
|
||||
/* When we call a function in a shared library, and the PLT sends us
|
||||
into the dynamic linker to find the function's real address, we
|
||||
need to skip over the dynamic linker call. This function decides
|
||||
when to skip, and where to skip to. See the comments for
|
||||
SKIP_SOLIB_RESOLVER at the top of infrun.c. */
|
||||
#define SKIP_SOLIB_RESOLVER i386_linux_skip_solib_resolver
|
||||
extern CORE_ADDR i386_linux_skip_solib_resolver (CORE_ADDR pc);
|
||||
|
||||
/* N_FUN symbols in shared libaries have 0 for their values and need
|
||||
to be relocated. */
|
||||
#define SOFUN_ADDRESS_MAYBE_MISSING
|
||||
|
@ -66,7 +66,7 @@ find_minsym_and_objfile (char *name, struct objfile **objfile_p)
|
||||
trigger when the dynamic linker is done. */
|
||||
|
||||
CORE_ADDR
|
||||
glibc_skip_solib_resolver (CORE_ADDR pc)
|
||||
glibc_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
{
|
||||
/* The GNU dynamic linker is part of the GNU C library, and is used
|
||||
by all GNU systems (GNU/Hurd, GNU/Linux). An unresolved PLT
|
||||
|
@ -22,6 +22,9 @@
|
||||
#ifndef GLIBC_TDEP_H
|
||||
#define GLIBC_TDEP_H
|
||||
|
||||
extern CORE_ADDR glibc_skip_solib_resolver (CORE_ADDR);
|
||||
struct gdbarch;
|
||||
|
||||
extern CORE_ADDR glibc_skip_solib_resolver (struct gdbarch *gdbarch,
|
||||
CORE_ADDR);
|
||||
|
||||
#endif /* glibc-tdep.h */
|
||||
|
@ -306,14 +306,6 @@ i386_linux_write_pc (CORE_ADDR pc, ptid_t ptid)
|
||||
write_register_pid (I386_LINUX_ORIG_EAX_REGNUM, -1, ptid);
|
||||
}
|
||||
|
||||
/* Calling functions in shared libraries. */
|
||||
|
||||
CORE_ADDR
|
||||
i386_linux_skip_solib_resolver (CORE_ADDR pc)
|
||||
{
|
||||
return glibc_skip_solib_resolver (pc);
|
||||
}
|
||||
|
||||
/* Fetch (and possibly build) an appropriate link_map_offsets
|
||||
structure for native GNU/Linux x86 targets using the struct offsets
|
||||
defined in link.h (but without actual reference to that file).
|
||||
@ -453,6 +445,7 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
||||
to support backtracing through calls to signal handlers. */
|
||||
set_gdbarch_pc_in_sigtramp (gdbarch, i386_linux_pc_in_sigtramp);
|
||||
|
||||
set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
|
||||
set_solib_svr4_fetch_link_map_offsets (gdbarch,
|
||||
i386_linux_svr4_fetch_link_map_offsets);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user