* hppa-tdep.c: Add #include "osabi.h" (for hppa_gdbarch_init).

(hppa_gdbarch_init): Detect osabi from objfile. Will be needed
       later to set the proper gdbarch methods depending on the osabi.
       * Makefile.in (hppa-tdep.o): Add dependency on osabi.h.
This commit is contained in:
Joel Brobecker 2002-12-02 23:30:34 +00:00
parent a09a320d6f
commit 59623e2707
3 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2002-12-02 J. Brobecker <brobecker@gnat.com>
* hppa-tdep.c: Add #include "osabi.h" (for hppa_gdbarch_init).
(hppa_gdbarch_init): Detect osabi from objfile. Will be needed
later to set the proper gdbarch methods depending on the osabi.
* Makefile.in (hppa-tdep.o): Add dependency on osabi.h.
2002-12-02 J. Brobecker <brobecker@gnat.com>
* osabi.h (gdb_osabi): Add two new enum values for HPUX ELF and SOM.

View File

@ -1749,7 +1749,7 @@ hpacc-abi.o: hpacc-abi.c $(defs_h) $(value_h) $(gdb_regex_h) $(gdb_string_h) \
hppa-tdep.o: hppa-tdep.c $(defs_h) $(frame_h) $(bfd_h) $(inferior_h) \
$(value_h) $(regcache_h) $(completer_h) $(symtab_h) $(a_out_encap_h) \
$(gdb_stat_h) $(gdb_wait_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) \
$(symfile_h) $(objfiles_h) $(language_h)
$(symfile_h) $(objfiles_h) $(language_h) $(osabi_h)
hppab-nat.o: hppab-nat.c $(defs_h) $(inferior_h) $(target_h) $(regcache_h)
hppah-nat.o: hppah-nat.c $(defs_h) $(inferior_h) $(target_h) $(gdbcore_h) \
$(gdb_wait_h) $(regcache_h)

View File

@ -31,6 +31,7 @@
#include "regcache.h"
#include "completer.h"
#include "language.h"
#include "osabi.h"
/* For argument passing to the inferior */
#include "symtab.h"
@ -4895,6 +4896,20 @@ static struct gdbarch *
hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
{
struct gdbarch *gdbarch;
enum gdb_osabi osabi = GDB_OSABI_UNKNOWN;
/* Try to determine the ABI of the object we are loading. */
if (info.abfd != NULL)
{
osabi = gdbarch_lookup_osabi (info.abfd);
if (osabi == GDB_OSABI_UNKNOWN)
{
/* If it's a SOM file, assume it's HP/UX SOM. */
if (bfd_get_flavour (info.abfd) == bfd_target_som_flavour)
osabi = GDB_OSABI_HPUX_SOM;
}
}
/* find a candidate among the list of pre-declared architectures. */
arches = gdbarch_list_lookup_by_info (arches, &info);