* glibc-tdep.h (struct gdbarch): Declare opaque.
authorMark Kettenis <kettenis@gnu.org>
Sat, 15 Nov 2003 14:02:58 +0000 (14:02 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 15 Nov 2003 14:02:58 +0000 (14:02 +0000)
(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.

gdb/ChangeLog
gdb/arm-linux-tdep.c
gdb/config/arm/tm-linux.h
gdb/config/i386/tm-linux.h
gdb/glibc-tdep.c
gdb/glibc-tdep.h
gdb/i386-linux-tdep.c

index cc68252874c05ef6ef0cbbb8579c018da5a16f11..3c59bc5be188d6ddeb265044d08cdbed4c29d419 100644 (file)
@@ -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
index c91c0fd7ba0d432bcc242ec9be05e692e4f892fd..42d4438d55dac02a5948e81742175c6e6f912e5a 100644 (file)
@@ -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
index 995ba7312fb24e6826439e801b44375709d68e93..dd41540786bc4eaf20f18b36ec6cd5f75cf28c22 100644 (file)
 /* 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
index 799678ed8f0bddba1937cac7f94e22126695a65b..83440a8722fdcd5e3aebfceeb0bb67707db0742b 100644 (file)
 /* 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
index 46aa74912e82428f2abdb2caef1b4a980b0fab23..04bb6834ad1373ec79f1e73e8f60e76542986cbb 100644 (file)
@@ -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
index 31c77b920e26f6f0e1f76241671cb4004bef34fe..75598d5e08b1b18f58f3d1eb8d29c596f51c78ee 100644 (file)
@@ -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 */
index 48caf4da06f02412ec1804992d7ad7c7263609b2..50073b1239f16c43a51a1ca46b4696772143655d 100644 (file)
@@ -306,14 +306,6 @@ i386_linux_write_pc (CORE_ADDR pc, ptid_t ptid)
   write_register_pid (I386_LINUX_ORIG_EAX_REGNUM, -1, ptid);
 }
 \f
-/* 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);
 }