* defs.h (gdb_osabi): New enum value GDB_OSABI_AIX.
authorJoel Brobecker <brobecker@gnat.com>
Fri, 10 Feb 2006 20:56:15 +0000 (20:56 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Fri, 10 Feb 2006 20:56:15 +0000 (20:56 +0000)
        * osabi.c (gdb_osabi_name): Add name of new value GDB_OSABI_AIX.
        * rs6000-tdep.h: New file.
        * rs6000-tdep.c: Include "rs6000-tdep.h".
        (rs6000_gdbarch_init): Remove enabling of software single step.
        Will be done in the AIX-specific initialization routine.
        * rs6000-aix-tdep.c: New file.
        * config/powerpc/aix.mt (TDEPFILES): Add rs6000-aix-tdep.o.
        * Makefile.in (rs6000_tdep_h): New variable.
        (rs6000-tdep.o): Update dependencies.
        (rs6000-aix-tdep.o): New rule.

gdb/ChangeLog
gdb/Makefile.in
gdb/config/powerpc/aix.mt
gdb/defs.h
gdb/osabi.c
gdb/rs6000-aix-tdep.c [new file with mode: 0644]
gdb/rs6000-tdep.c
gdb/rs6000-tdep.h [new file with mode: 0644]

index 8afb011..6750cb1 100644 (file)
@@ -1,5 +1,19 @@
 2006-02-10  Joel Brobecker  <brobecker@adacore.com>
 
+       * defs.h (gdb_osabi): New enum value GDB_OSABI_AIX.
+       * osabi.c (gdb_osabi_name): Add name of new value GDB_OSABI_AIX.
+       * rs6000-tdep.h: New file.
+       * rs6000-tdep.c: Include "rs6000-tdep.h".
+       (rs6000_gdbarch_init): Remove enabling of software single step.
+       Will be done in the AIX-specific initialization routine.
+       * rs6000-aix-tdep.c: New file.
+       * config/powerpc/aix.mt (TDEPFILES): Add rs6000-aix-tdep.o.
+       * Makefile.in (rs6000_tdep_h): New variable.
+       (rs6000-tdep.o): Update dependencies.
+       (rs6000-aix-tdep.o): New rule.
+
+2006-02-10  Joel Brobecker  <brobecker@adacore.com>
+
         * aix-thread.c (_initialize_aix_thread): Use add_setshow_boolean_cmd
         instead of add_setshow_zinteger_cmd to defined the aix-thread
         boolean setting.
index 14188bd..16e7bf7 100644 (file)
@@ -760,6 +760,7 @@ regset_h = regset.h
 remote_fileio_h = remote-fileio.h
 remote_h = remote.h
 remote_utils_h = remote-utils.h $(target_h)
+rs6000_tdep_h = rs6000-tdep.h $(defs_h)
 s390_tdep_h = s390-tdep.h
 scm_lang_h = scm-lang.h $(scm_tags_h)
 scm_tags_h = scm-tags.h
@@ -2488,7 +2489,8 @@ rs6000-tdep.o: rs6000-tdep.c $(defs_h) $(frame_h) $(inferior_h) $(symtab_h) \
        $(reggroups_h) $(libbfd_h) $(coff_internal_h) $(libcoff_h) \
        $(coff_xcoff_h) $(libxcoff_h) $(elf_bfd_h) $(solib_svr4_h) \
        $(ppc_tdep_h) $(gdb_assert_h) $(dis_asm_h) $(trad_frame_h) \
-       $(frame_unwind_h) $(frame_base_h) $(reggroups_h)
+       $(frame_unwind_h) $(frame_base_h) $(reggroups_h) $(rs6000_tdep_h)
+rs6000-aix-tdep.o: rs6000-aix-tdep.c $(defs_h) $(osabi_h) $(rs6000_tdep_h)
 s390-nat.o: s390-nat.c $(defs_h) $(tm_h) $(regcache_h) $(inferior_h) \
        $(s390_tdep_h) $(target_h) $(linux_nat_h)
 s390-tdep.o: s390-tdep.c $(defs_h) $(arch_utils_h) $(frame_h) $(inferior_h) \
index b736d5a..c18e4ba 100644 (file)
@@ -1,3 +1,4 @@
 # Target: PowerPC running AIX
-TDEPFILES= rs6000-tdep.o xcoffread.o ppc-sysv-tdep.o solib.o solib-svr4.o
+TDEPFILES= rs6000-tdep.o rs6000-aix-tdep.o \
+           xcoffread.o ppc-sysv-tdep.o solib.o solib-svr4.o
 DEPRECATED_TM_FILE= config/rs6000/tm-rs6000.h
index 6d4e922..f5f8e35 100644 (file)
@@ -963,6 +963,7 @@ enum gdb_osabi
   GDB_OSABI_QNXNTO,
 
   GDB_OSABI_CYGWIN,
+  GDB_OSABI_AIX,
 
   GDB_OSABI_INVALID            /* keep this last */
 };
index 53d2fb2..e8c5ed8 100644 (file)
@@ -74,6 +74,7 @@ static const char * const gdb_osabi_names[] =
   "QNX Neutrino",
 
   "Cygwin",
+  "AIX",
 
   "<invalid>"
 };
diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c
new file mode 100644 (file)
index 0000000..a488637
--- /dev/null
@@ -0,0 +1,55 @@
+/* Native support code for PPC AIX, for GDB the GNU debugger.
+
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+   Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include "defs.h"
+#include "osabi.h"
+#include "rs6000-tdep.h"
+
+static enum gdb_osabi
+rs6000_aix_osabi_sniffer (bfd *abfd)
+{
+  
+  if (bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
+    return GDB_OSABI_AIX;
+
+  return GDB_OSABI_UNKNOWN;
+}
+
+static void
+rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+  /* RS6000/AIX does not support PT_STEP.  Has to be simulated.  */
+  set_gdbarch_software_single_step (gdbarch, rs6000_software_single_step);
+}
+
+void
+_initialize_rs6000_aix_tdep (void)
+{
+  gdbarch_register_osabi_sniffer (bfd_arch_rs6000,
+                                  bfd_target_xcoff_flavour,
+                                  rs6000_aix_osabi_sniffer);
+
+  gdbarch_register_osabi (bfd_arch_rs6000, 0, GDB_OSABI_AIX,
+                          rs6000_aix_init_osabi);
+}
+
index 19a4bc9..f782800 100644 (file)
@@ -60,6 +60,7 @@
 #include "frame-base.h"
 
 #include "reggroups.h"
+#include "rs6000-tdep.h"
 
 /* If the kernel has to deliver a signal, it pushes a sigcontext
    structure on the stack and then calls the signal handler, passing
@@ -3518,16 +3519,6 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
       frame_base_append_sniffer (gdbarch, rs6000_frame_base_sniffer);
     }
 
-  if (from_xcoff_exec)
-    {
-      /* NOTE: jimix/2003-06-09: This test should really check for
-        GDB_OSABI_AIX when that is defined and becomes
-        available. (Actually, once things are properly split apart,
-        the test goes away.) */
-       /* RS6000/AIX does not support PT_STEP.  Has to be simulated.  */
-       set_gdbarch_software_single_step (gdbarch, rs6000_software_single_step);
-    }
-
   init_sim_regno_table (gdbarch);
 
   return gdbarch;
diff --git a/gdb/rs6000-tdep.h b/gdb/rs6000-tdep.h
new file mode 100644 (file)
index 0000000..95c96a7
--- /dev/null
@@ -0,0 +1,26 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+
+   Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include "defs.h"
+
+extern void rs6000_software_single_step (enum target_signal signal,
+                                        int insert_breakpoints_p);
+