From: Joel Brobecker Date: Mon, 2 Dec 2002 23:30:34 +0000 (+0000) Subject: * hppa-tdep.c: Add #include "osabi.h" (for hppa_gdbarch_init). X-Git-Tag: cagney-unwind-20030108-branchpoint~535 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=59623e2707f69ccf3c47d15a4c719074891bfe13;p=platform%2Fupstream%2Fbinutils.git * 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. --- 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 + * 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 + * 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);