diff options
author | Joel Brobecker <brobecker@gnat.com> | 2002-12-02 23:30:34 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2002-12-02 23:30:34 +0000 |
commit | 59623e2707f69ccf3c47d15a4c719074891bfe13 (patch) | |
tree | e1319997172830537bdde85b0d597f08a20a27e8 /gdb | |
parent | a09a320d6fc865fa15bebf6d492550a70fcc8c89 (diff) | |
download | gdb-59623e2707f69ccf3c47d15a4c719074891bfe13.zip gdb-59623e2707f69ccf3c47d15a4c719074891bfe13.tar.gz gdb-59623e2707f69ccf3c47d15a4c719074891bfe13.tar.bz2 |
* 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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/Makefile.in | 2 | ||||
-rw-r--r-- | gdb/hppa-tdep.c | 15 |
3 files changed, 23 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b22a865..378db56 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 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. * osabi.c (gdb_osabi_name): Add strings images for the two new enum values. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index c9d65c8..9c0d6e5 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -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) diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 9d90312..2ea7906 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -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); |