* osabi.c (generic_elf_osabi_sniffer): Add check for FreeBSD 3.x's
authorMark Kettenis <kettenis@gnu.org>
Thu, 4 Jul 2002 15:36:51 +0000 (15:36 +0000)
committerMark Kettenis <kettenis@gnu.org>
Thu, 4 Jul 2002 15:36:51 +0000 (15:36 +0000)
traditonal string branding within the ELF header.

gdb/ChangeLog
gdb/osabi.c

index 94263bc29518ba10bf4033a58bdd149b633d94ce..96e274fafb11fc2af70638005f5f20436d36f06b 100644 (file)
@@ -1,3 +1,8 @@
+2002-07-04  Mark Kettenis  <kettenis@gnu.org>
+
+       * osabi.c (generic_elf_osabi_sniffer): Add check for FreeBSD 3.x's
+       traditonal string branding within the ELF header.
+
 2002-07-04  Daniel Jacobowitz  <drow@mvista.com>
 
        * symtab.c (remove_params): New function.
index 1e122b8fb9f317a31cc1248a31673c86da2615bb..c152cb4464fc0bae62f9e6909d55cf43906e532a 100644 (file)
@@ -408,6 +408,15 @@ generic_elf_osabi_sniffer (bfd *abfd)
       break;
     }
 
+  if (osabi == GDB_OSABI_UNKNOWN)
+    {
+      /* The FreeBSD folks have been naughty; they stored the string
+         "FreeBSD" in the padding of the e_ident field of the ELF
+         header to "brand" their ELF binaries in FreeBSD 3.x.  */
+      if (strcmp (&elf_elfheader (abfd)->e_ident[8], "FreeBSD") == 0)
+       osabi = GDB_OSABI_FREEBSD_ELF;
+    }
+
   return osabi;
 }
 \f