* i386-sol2-tdep.c (i386_sol2_osabi_sniffer): New function.
authorMark Kettenis <kettenis@gnu.org>
Sat, 15 Jun 2002 18:49:52 +0000 (18:49 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 15 Jun 2002 18:49:52 +0000 (18:49 +0000)
(_initialize_i386_sol2_tdep): Register i386_sol2_osabi_sniffer.

gdb/ChangeLog
gdb/i386-sol2-tdep.c

index 987c8856eeae861e14a939d57c64f87a005e350e..726e41537b42ece48ca662c3e09024a46d4753a7 100644 (file)
@@ -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.
index 714f5db9b36646b6fe3e0acdf00bc66a966d1a5a..206e85cfe72cb041c31d64126f6af74b11b85d2d 100644 (file)
@@ -48,12 +48,27 @@ i386_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 }
 \f
 
+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);
 }