* 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.
This commit is contained in:
Joel Brobecker 2006-02-10 20:56:15 +00:00
parent 577b704726
commit 1f82754b11
8 changed files with 103 additions and 12 deletions

View File

@ -1,3 +1,17 @@
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

View 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) \

View 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

View File

@ -963,6 +963,7 @@ enum gdb_osabi
GDB_OSABI_QNXNTO,
GDB_OSABI_CYGWIN,
GDB_OSABI_AIX,
GDB_OSABI_INVALID /* keep this last */
};

View File

@ -74,6 +74,7 @@ static const char * const gdb_osabi_names[] =
"QNX Neutrino",
"Cygwin",
"AIX",
"<invalid>"
};

55
gdb/rs6000-aix-tdep.c Normal file
View File

@ -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);
}

View 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;

26
gdb/rs6000-tdep.h Normal file
View File

@ -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);