diff options
author | Mark Kettenis <kettenis@gnu.org> | 2002-06-30 14:43:24 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2002-06-30 14:43:24 +0000 |
commit | 9c5045b55215d45e352d593993892da54df718f8 (patch) | |
tree | 5b5a72104405129ad51122f8531fc4cfe96df4f5 /gdb/i386bsd-tdep.c | |
parent | 99c847f2174738e4155fbd06598051dde97d70b4 (diff) | |
download | gdb-9c5045b55215d45e352d593993892da54df718f8.zip gdb-9c5045b55215d45e352d593993892da54df718f8.tar.gz gdb-9c5045b55215d45e352d593993892da54df718f8.tar.bz2 |
* 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.
Diffstat (limited to 'gdb/i386bsd-tdep.c')
-rw-r--r-- | gdb/i386bsd-tdep.c | 23 |
1 files changed, 23 insertions, 0 deletions
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 <machine/signal.h>. */ @@ -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. */ |