diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5971c56157..29a3c0870b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2005-12-09 Randolph Chung + + 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 * hppa-tdep.c (hppa64_convert_code_addr_to_fptr): New function. diff --git a/gdb/hppa-hpux-tdep.c b/gdb/hppa-hpux-tdep.c index fab8d6e7b7..b0cdd5dc36 100644 --- a/gdb/hppa-hpux-tdep.c +++ b/gdb/hppa-hpux-tdep.c @@ -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);