2005-12-09 Randolph Chung <tausq@debian.org>
authorRandolph Chung <tausq@debian.org>
Fri, 9 Dec 2005 11:25:04 +0000 (11:25 +0000)
committerRandolph Chung <tausq@debian.org>
Fri, 9 Dec 2005 11:25:04 +0000 (11:25 +0000)
PR corefiles/2026
* hppa-hpux-tdep.c (hppa_hpux_core_osabi_sniffer): Check for HPUX ELF
core files.
(_initialize_hppa_hpux_tdep): Install sniffer for ELF core files.
* config/pa/hpux.mh: Compile corelow.o.

gdb/ChangeLog
gdb/hppa-hpux-tdep.c

index 5971c56157b27c999033ab24397f0b86a3895443..29a3c0870b0dc1b70d77c1829625f4fdea815764 100644 (file)
@@ -1,3 +1,11 @@
+2005-12-09  Randolph Chung  <tausq@debian.org>
+
+       PR corefiles/2026
+       * hppa-hpux-tdep.c (hppa_hpux_core_osabi_sniffer): Check for HPUX ELF
+       core files.
+       (_initialize_hppa_hpux_tdep): Install sniffer for ELF core files.
+       * config/pa/hpux.mh: Compile corelow.o.
+
 2005-12-09  Randolph Chung  <tausq@debian.org>
 
        * hppa-tdep.c (hppa64_convert_code_addr_to_fptr): New function.
index fab8d6e7b7b0f6e1a98b13c36beb7d0cf3b86ef9..b0cdd5dc36022a475fb1779f9a27c8c04f504aa6 100644 (file)
@@ -2064,6 +2064,24 @@ hppa_hpux_core_osabi_sniffer (bfd *abfd)
 {
   if (strcmp (bfd_get_target (abfd), "hpux-core") == 0)
     return GDB_OSABI_HPUX_SOM;
+  else if (strcmp (bfd_get_target (abfd), "elf64-hppa") == 0)
+    {
+      asection *section;
+      
+      section = bfd_get_section_by_name (abfd, ".kernel");
+      if (section)
+        {
+         bfd_size_type size;
+         char *contents;
+
+         size = bfd_section_size (abfd, section);
+         contents = alloca (size);
+         if (bfd_get_section_contents (abfd, section, contents, 
+                                       (file_ptr) 0, size)
+             && strcmp (contents, "HP-UX") == 0)
+           return GDB_OSABI_HPUX_ELF;
+       }
+    }
 
   return GDB_OSABI_UNKNOWN;
 }
@@ -2076,6 +2094,9 @@ _initialize_hppa_hpux_tdep (void)
   gdbarch_register_osabi_sniffer (bfd_arch_unknown,
                                  bfd_target_unknown_flavour,
                                  hppa_hpux_core_osabi_sniffer);
+  gdbarch_register_osabi_sniffer (bfd_arch_hppa,
+                                  bfd_target_elf_flavour,
+                                 hppa_hpux_core_osabi_sniffer);
 
   gdbarch_register_osabi (bfd_arch_hppa, 0, GDB_OSABI_HPUX_SOM,
                           hppa_hpux_som_init_abi);