aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2002-06-15 18:49:52 +0000
committerMark Kettenis <kettenis@gnu.org>2002-06-15 18:49:52 +0000
commit6e157172af6003a98be673ce19ea9d5386bd184b (patch)
treeadb9ee7559f16a01aa2edca7a7d9a1d66d966538
parent7f19b9a2d27295b92e12c1767a56afd54857be5f (diff)
downloadgdb-6e157172af6003a98be673ce19ea9d5386bd184b.zip
gdb-6e157172af6003a98be673ce19ea9d5386bd184b.tar.gz
gdb-6e157172af6003a98be673ce19ea9d5386bd184b.tar.bz2
* i386-sol2-tdep.c (i386_sol2_osabi_sniffer): New function.
(_initialize_i386_sol2_tdep): Register i386_sol2_osabi_sniffer.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/i386-sol2-tdep.c15
2 files changed, 20 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 987c885..726e415 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2002-06-15 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-sol2-tdep.c (i386_sol2_osabi_sniffer): New function.
+ (_initialize_i386_sol2_tdep): Register i386_sol2_osabi_sniffer.
+
2002-06-15 Andrew Cagney <ac131313@redhat.com>
* defs.h (auto_boolean): Declare enum.
diff --git a/gdb/i386-sol2-tdep.c b/gdb/i386-sol2-tdep.c
index 714f5db..206e85c 100644
--- a/gdb/i386-sol2-tdep.c
+++ b/gdb/i386-sol2-tdep.c
@@ -48,12 +48,27 @@ i386_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
}
+static enum gdb_osabi
+i386_sol2_osabi_sniffer (bfd *abfd)
+{
+ /* If we have a section named .SUNW_version, then it is almost
+ certainly Solaris 2. */
+ if (bfd_get_section_by_name (abfd, ".SUNW_version"))
+ return GDB_OSABI_SOLARIS;
+
+ return GDB_OSABI_UNKNOWN;
+}
+
/* Provide a prototype to silence -Wmissing-prototypes. */
void _initialize_i386_sol2_tdep (void);
void
_initialize_i386_sol2_tdep (void)
{
+ /* Register and ELF OS ABI sniffer for Solaris 2 binaries. */
+ gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_elf_flavour,
+ i386_sol2_osabi_sniffer);
+
gdbarch_register_osabi (bfd_arch_i386, GDB_OSABI_SOLARIS,
i386_sol2_init_abi);
}