From 9c5045b55215d45e352d593993892da54df718f8 Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Sun, 30 Jun 2002 14:43:24 +0000 Subject: * config/i386/tm-fbsd.h [!SVR4_SHARED_LIBS] (IN_SOLIB_CALL_TRAMPOLINE): Remove define. * config/i386/tm-nbsdaout.h (IN_SOLIB_CALL_TRAMPOLINE): Remove define. * i386bsd-tdep.c: Include "arch-utils.h". (i386bsd_aout_in_solib_call_trampoline): New function. (i386bsd_init_abi): Set in_solib_call_trampoline to i386bsd_aout_in_solib_call_trampoline. (i386nbsdelf_init_abi, i386fbsd_init_abi): Set in_solib_call_trampoline to generic_in_solib_call_trampoline. --- gdb/i386bsd-tdep.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gdb/i386bsd-tdep.c') diff --git a/gdb/i386bsd-tdep.c b/gdb/i386bsd-tdep.c index e6427b3..940f2ec 100644 --- a/gdb/i386bsd-tdep.c +++ b/gdb/i386bsd-tdep.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include "defs.h" +#include "arch-utils.h" #include "frame.h" #include "gdbcore.h" #include "regcache.h" @@ -98,6 +99,16 @@ i386bsd_sigtramp_end (CORE_ADDR pc) } +/* Support for shared libraries. */ + +/* Return non-zero if we are in a shared library trampoline code stub. */ + +int +i386bsd_aout_in_solib_call_trampoline (CORE_ADDR pc, char *name) +{ + return (name && !strcmp (name, "_DYNAMIC")); +} + /* Traditional BSD (4.3 BSD, still used for BSDI and 386BSD). */ /* From . */ @@ -110,6 +121,10 @@ i386bsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_pc_in_sigtramp (gdbarch, i386bsd_pc_in_sigtramp); + /* Assume SunOS-style shared libraries. */ + set_gdbarch_in_solib_call_trampoline (gdbarch, + i386bsd_aout_in_solib_call_trampoline); + tdep->jb_pc_offset = 0; tdep->sigtramp_saved_pc = i386bsd_sigtramp_saved_pc; @@ -155,6 +170,10 @@ i386nbsdelf_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* But ELF-based. */ i386_elf_init_abi (info, gdbarch); + /* NetBSD ELF uses SVR4-style shared libraries. */ + set_gdbarch_in_solib_call_trampoline (gdbarch, + generic_in_solib_call_trampoline); + /* NetBSD ELF uses -fpcc-struct-return by default. */ tdep->struct_return = pcc_struct_return; @@ -193,6 +212,10 @@ i386fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Except that it uses ELF. */ i386_elf_init_abi (info, gdbarch); + + /* FreeBSD ELF uses SVR4-style shared libraries. */ + set_gdbarch_in_solib_call_trampoline (gdbarch, + generic_in_solib_call_trampoline); } /* FreeBSD 4.0-RELEASE or later. */ -- cgit v1.1