diff options
-rw-r--r-- | gdb/ChangeLog | 48 | ||||
-rw-r--r-- | gdb/Makefile.in | 5 | ||||
-rw-r--r-- | gdb/alpha-linux-nat.c | 12 | ||||
-rw-r--r-- | gdb/config/arm/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/arm/nm-linux.h | 29 | ||||
-rw-r--r-- | gdb/config/i386/nm-linux.h | 3 | ||||
-rw-r--r-- | gdb/config/i386/nm-linux64.h | 4 | ||||
-rw-r--r-- | gdb/config/ia64/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/ia64/nm-linux.h | 29 | ||||
-rw-r--r-- | gdb/config/m32r/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/m32r/nm-linux.h | 29 | ||||
-rw-r--r-- | gdb/config/m68k/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/m68k/nm-linux.h | 29 | ||||
-rw-r--r-- | gdb/config/pa/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/pa/nm-linux.h | 30 | ||||
-rw-r--r-- | gdb/config/powerpc/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/powerpc/nm-linux.h | 28 | ||||
-rw-r--r-- | gdb/config/powerpc/ppc64-linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/s390/nm-linux.h | 36 | ||||
-rw-r--r-- | gdb/config/s390/s390.mh | 2 | ||||
-rw-r--r-- | gdb/config/sparc/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/sparc/linux64.mh | 2 | ||||
-rw-r--r-- | gdb/config/sparc/nm-linux.h | 31 | ||||
-rw-r--r-- | gdb/linux-nat.c | 47 | ||||
-rw-r--r-- | gdb/linux-nat.h | 5 | ||||
-rw-r--r-- | gdb/mips-linux-nat.c | 15 |
26 files changed, 113 insertions, 287 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6299fed..50add55 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,53 @@ 2007-04-25 Ulrich Weigand <uweigand@de.ibm.com> + * linux-nat.c (linux_register_u_offset): Remove. + (linux_target_install_ops): New function. + (linux_target): Use it. + (linux_trad_target): New function. + * linux-nat.h (linux_trad_target): Declare. + + * alpha-linux-nat.c: Include "gdbcore.h". + (alpha_linux_register_u_offset): New function. + (_initialize_alpha_linux_nat): Use linux_trad_target. + + * mips-linux-nat.c: Include "gdbcore.h". + (mips_linux_register_u_offset): New function. + (_initialize_mips_linux_nat): Use linux_trad_target. + + * config/arm/linux.mh (NAT_FILE): Set to config/nm-linux.h. + * config/arm/nm-linux.h: Delete file. + + * config/i386/nm-linux64.h (FETCH_INFERIOR_REGISTERS): Remove. + * config/i386/nm-linux.h (FETCH_INFERIOR_REGISTERS): Remove. + + * config/ia64/linux.mh (NAT_FILE): Set to config/nm-linux.h. + * config/ia64/nm-linux.h: Delete file. + + * config/m32r/linux.mh (NAT_FILE): Set to config/nm-linux.h. + * config/m32r/nm-linux.h: Delete file. + + * config/m68k/linux.mh (NAT_FILE): Set to config/nm-linux.h. + * config/m68k/nm-linux.h: Delete file. + + * config/pa/linux.mh (NAT_FILE): Set to config/nm-linux.h. + * config/pa/nm-linux.h: Delete file. + + * config/powerpc/linux.mh (NAT_FILE): Set to config/nm-linux.h. + * config/powerpc/ppc64-linux.mh (NAT_FILE): Likewise. + * config/powerpc/nm-linux.h: Delete file. + + * config/s390/s390.mh (NAT_FILE): Set to config/nm-linux.h. + * config/s390/nm-linux.h: Delete file. + + * config/sparc/linux.mh (NAT_FILE): Set to config/nm-linux.h. + * config/sparc/linux64.mh (NAT_FILE): Likewise. + * config/sparc/nm-linux.h: Delete file. + + * Makefile.in (alpha-linux-nat.o): Update dependencies. + (mips-linux-nat.o): Likewise. + +2007-04-25 Ulrich Weigand <uweigand@de.ibm.com> + * core-aout.c: Delete file. * Makefile.in (ALLDEPFILES): Remove core-aout.c. (core-aout.o): Delete rule. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 775c255..7885934 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1716,7 +1716,8 @@ alphabsd-tdep.o: alphabsd-tdep.c $(defs_h) $(alpha_tdep_h) \ $(alphabsd_tdep_h) alphafbsd-tdep.o: alphafbsd-tdep.c $(defs_h) $(value_h) $(osabi_h) \ $(alpha_tdep_h) $(solib_svr4_h) -alpha-linux-nat.o: alpha-linux-nat.c $(defs_h) $(target_h) $(linux_nat_h) +alpha-linux-nat.o: alpha-linux-nat.c $(defs_h) $(target_h) $(linux_nat_h) \ + $(gdbcore_h) alpha-linux-tdep.o: alpha-linux-tdep.c $(defs_h) $(frame_h) $(gdb_assert_h) \ $(osabi_h) $(solib_svr4_h) $(symtab_h) $(alpha_tdep_h) alpha-mdebug-tdep.o: alpha-mdebug-tdep.c $(defs_h) $(frame_h) \ @@ -2340,7 +2341,7 @@ mips64obsd-tdep.o: mips64obsd-tdep.c $(defs_h) $(osabi_h) $(regcache_h) \ mips-irix-tdep.o: mips-irix-tdep.c $(defs_h) $(osabi_h) $(elf_bfd_h) mips-linux-nat.o: mips-linux-nat.c $(defs_h) $(mips_tdep_h) $(target_h) \ $(linux_nat_h) $(gdb_proc_service_h) $(mips_linux_tdep_h) \ - $(inferior_h) + $(gdbcore_h) $(inferior_h) mips-linux-tdep.o: mips-linux-tdep.c $(defs_h) $(gdbcore_h) $(target_h) \ $(solib_svr4_h) $(osabi_h) $(mips_tdep_h) $(gdb_string_h) \ $(gdb_assert_h) $(frame_h) $(regcache_h) $(trad_frame_h) \ diff --git a/gdb/alpha-linux-nat.c b/gdb/alpha-linux-nat.c index d93494d..0186a94 100644 --- a/gdb/alpha-linux-nat.c +++ b/gdb/alpha-linux-nat.c @@ -21,11 +21,21 @@ #include "defs.h" #include "target.h" #include "linux-nat.h" +#include "gdbcore.h" + +static CORE_ADDR +alpha_linux_register_u_offset (int regno) +{ + /* FIXME drow/2005-09-04: The hardcoded use of register_addr should go + away. This requires disentangling the various definitions of it + (particularly alpha-nat.c's). */ + return register_addr (regno, 0); +} void _initialialize_alpha_linux_nat (void); void _initialize_alpha_linux_nat (void) { - linux_nat_add_target (linux_target ()); + linux_nat_add_target (linux_trad_target (alpha_linux_register_u_offset)); } diff --git a/gdb/config/arm/linux.mh b/gdb/config/arm/linux.mh index 0085826..adca462 100644 --- a/gdb/config/arm/linux.mh +++ b/gdb/config/arm/linux.mh @@ -1,6 +1,6 @@ # Host: ARM based machine running GNU/Linux -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= inf-ptrace.o fork-child.o arm-linux-nat.o gcore.o \ proc-service.o linux-thread-db.o linux-nat.o linux-fork.o diff --git a/gdb/config/arm/nm-linux.h b/gdb/config/arm/nm-linux.h deleted file mode 100644 index 97371d2..0000000 --- a/gdb/config/arm/nm-linux.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Definitions to make GDB run on an ARM based machine under GNU/Linux. - Copyright 1999, 2000, 2001, 2007 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. */ - -#ifndef NM_ARMLINUX_H -#define NM_ARMLINUX_H - -#include "config/nm-linux.h" - -/* Override copies of {fetch,store}_inferior_registers in infptrace.c. */ -#define FETCH_INFERIOR_REGISTERS - -#endif /* NM_ARMLINUX_H */ diff --git a/gdb/config/i386/nm-linux.h b/gdb/config/i386/nm-linux.h index 8ee5696..7bc069c 100644 --- a/gdb/config/i386/nm-linux.h +++ b/gdb/config/i386/nm-linux.h @@ -48,9 +48,6 @@ extern unsigned long i386_linux_dr_get_status (void); i386_linux_dr_get_status () -/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */ -#define FETCH_INFERIOR_REGISTERS - #ifdef HAVE_PTRACE_GETFPXREGS /* Include register set support for the SSE registers. */ #define FILL_FPXREGSET diff --git a/gdb/config/i386/nm-linux64.h b/gdb/config/i386/nm-linux64.h index 92b220e..b620dcf 100644 --- a/gdb/config/i386/nm-linux64.h +++ b/gdb/config/i386/nm-linux64.h @@ -50,9 +50,5 @@ extern void amd64_linux_dr_reset_addr (int regnum); extern unsigned long amd64_linux_dr_get_status (void); #define I386_DR_LOW_GET_STATUS() \ amd64_linux_dr_get_status () - - -/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */ -#define FETCH_INFERIOR_REGISTERS #endif /* nm-linux64.h */ diff --git a/gdb/config/ia64/linux.mh b/gdb/config/ia64/linux.mh index 44bf8d3..e620d04 100644 --- a/gdb/config/ia64/linux.mh +++ b/gdb/config/ia64/linux.mh @@ -1,6 +1,6 @@ # Host: Intel IA-64 running GNU/Linux -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= inf-ptrace.o fork-child.o corelow.o gcore.o \ core-regset.o ia64-linux-nat.o \ proc-service.o linux-thread-db.o linux-nat.o linux-fork.o diff --git a/gdb/config/ia64/nm-linux.h b/gdb/config/ia64/nm-linux.h deleted file mode 100644 index 7f60064..0000000 --- a/gdb/config/ia64/nm-linux.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Native support for GNU/Linux, for GDB, the GNU debugger. - - Copyright 1999, 2000, 2001, 2004, 2005, 2007 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. */ - -#ifndef NM_LINUX_H -#define NM_LINUX_H - -#include "config/nm-linux.h" - -#define FETCH_INFERIOR_REGISTERS - -#endif /* #ifndef NM_LINUX_H */ diff --git a/gdb/config/m32r/linux.mh b/gdb/config/m32r/linux.mh index 0f94bd8..e781b4d 100644 --- a/gdb/config/m32r/linux.mh +++ b/gdb/config/m32r/linux.mh @@ -1,6 +1,6 @@ # Host: M32R based machine running GNU/Linux -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= inf-ptrace.o fork-child.o corelow.o \ m32r-linux-nat.o gcore.o proc-service.o linux-thread-db.o \ linux-nat.o linux-fork.o diff --git a/gdb/config/m32r/nm-linux.h b/gdb/config/m32r/nm-linux.h deleted file mode 100644 index 27b596e..0000000 --- a/gdb/config/m32r/nm-linux.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Definitions to make GDB run on an M32R based machine under GNU/Linux. - Copyright 2004, 2007 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. */ - -#ifndef NM_M32R_LINUX_H -#define NM_M32R_LINUX_H - -#include "config/nm-linux.h" - -/* Override copies of {fetch,store}_inferior_registers in infptrace.c. */ -#define FETCH_INFERIOR_REGISTERS - -#endif /* NM_M32R_LINUX_H */ diff --git a/gdb/config/m68k/linux.mh b/gdb/config/m68k/linux.mh index e77a6c5..ebac49f 100644 --- a/gdb/config/m68k/linux.mh +++ b/gdb/config/m68k/linux.mh @@ -1,6 +1,6 @@ # Host: Motorola m68k running GNU/Linux. -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= inf-ptrace.o fork-child.o \ corelow.o m68klinux-nat.o gcore.o \ proc-service.o linux-thread-db.o linux-nat.o linux-fork.o diff --git a/gdb/config/m68k/nm-linux.h b/gdb/config/m68k/nm-linux.h deleted file mode 100644 index 7f5a427..0000000 --- a/gdb/config/m68k/nm-linux.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Native support for linux, for GDB, the GNU debugger. - Copyright 1996, 1998, 2000, 2007 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. */ - -#ifndef NM_LINUX_H -#define NM_LINUX_H - -#include "config/nm-linux.h" - -/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */ -#define FETCH_INFERIOR_REGISTERS - -#endif /* #ifndef NM_LINUX_H */ diff --git a/gdb/config/pa/linux.mh b/gdb/config/pa/linux.mh index 8066fff..ea45f69 100644 --- a/gdb/config/pa/linux.mh +++ b/gdb/config/pa/linux.mh @@ -1,6 +1,6 @@ # Host: Hewlett-Packard PA-RISC machine, running Linux XDEPFILES= -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= inf-ptrace.o fork-child.o corelow.o gcore.o \ hppa-linux-nat.o proc-service.o linux-thread-db.o linux-nat.o \ linux-fork.o diff --git a/gdb/config/pa/nm-linux.h b/gdb/config/pa/nm-linux.h deleted file mode 100644 index b6023b4..0000000 --- a/gdb/config/pa/nm-linux.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Native support for GNU/Linux, for GDB, the GNU debugger. - Copyright (C) 2004, 2007 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. */ - -#ifndef PA_NM_LINUX_H -#define PA_NM_LINUX_H - -#include "config/nm-linux.h" - -/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */ -#define FETCH_INFERIOR_REGISTERS - -#endif - diff --git a/gdb/config/powerpc/linux.mh b/gdb/config/powerpc/linux.mh index 9a6a2a4..482223d 100644 --- a/gdb/config/powerpc/linux.mh +++ b/gdb/config/powerpc/linux.mh @@ -2,7 +2,7 @@ XM_CLIBS= -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= inf-ptrace.o fork-child.o \ ppc-linux-nat.o proc-service.o linux-thread-db.o \ gcore.o linux-nat.o linux-fork.o diff --git a/gdb/config/powerpc/nm-linux.h b/gdb/config/powerpc/nm-linux.h deleted file mode 100644 index 5d367f6..0000000 --- a/gdb/config/powerpc/nm-linux.h +++ /dev/null @@ -1,28 +0,0 @@ -/* IBM PowerPC native-dependent macros for GDB, the GNU debugger. - Copyright 1995, 2000, 2007 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#ifndef NM_LINUX_H - -#include "config/nm-linux.h" - -#define NM_LINUX_H - -#define FETCH_INFERIOR_REGISTERS - -#endif /* #ifndef NM_LINUX_H */ diff --git a/gdb/config/powerpc/ppc64-linux.mh b/gdb/config/powerpc/ppc64-linux.mh index 4e06c7b..6fc51b8 100644 --- a/gdb/config/powerpc/ppc64-linux.mh +++ b/gdb/config/powerpc/ppc64-linux.mh @@ -2,7 +2,7 @@ XM_CLIBS= -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= inf-ptrace.o fork-child.o \ ppc-linux-nat.o proc-service.o linux-thread-db.o \ gcore.o linux-nat.o linux-fork.o diff --git a/gdb/config/s390/nm-linux.h b/gdb/config/s390/nm-linux.h deleted file mode 100644 index 81ba493..0000000 --- a/gdb/config/s390/nm-linux.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Native support for GNU/Linux on S390. - - Copyright 2001, 2002, 2003, 2007 Free Software Foundation, Inc. - - Ported by D.J. Barrow for IBM Deutschland Entwicklung GmbH, IBM - Corporation. derived from i390-nmlinux.h - - 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. */ - -#ifndef NM_LINUX_H -#define NM_LINUX_H - -#include "config/nm-linux.h" - - -/* ptrace access. */ - -#define FETCH_INFERIOR_REGISTERS - - -#endif /* nm_linux.h */ diff --git a/gdb/config/s390/s390.mh b/gdb/config/s390/s390.mh index d81fb77..7161bfb 100644 --- a/gdb/config/s390/s390.mh +++ b/gdb/config/s390/s390.mh @@ -1,5 +1,5 @@ # Host: S390, running Linux -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= inf-ptrace.o fork-child.o corelow.o s390-nat.o \ gcore.o linux-thread-db.o proc-service.o linux-nat.o linux-fork.o LOADLIBES = -ldl -rdynamic diff --git a/gdb/config/sparc/linux.mh b/gdb/config/sparc/linux.mh index b640a92..0296a33 100644 --- a/gdb/config/sparc/linux.mh +++ b/gdb/config/sparc/linux.mh @@ -1,5 +1,5 @@ # Host: GNU/Linux SPARC -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= sparc-nat.o sparc-linux-nat.o \ corelow.o core-regset.o fork-child.o inf-ptrace.o \ proc-service.o linux-thread-db.o \ diff --git a/gdb/config/sparc/linux64.mh b/gdb/config/sparc/linux64.mh index 195940c..f2d8bc8 100644 --- a/gdb/config/sparc/linux64.mh +++ b/gdb/config/sparc/linux64.mh @@ -1,5 +1,5 @@ # Host: GNU/Linux UltraSPARC -NAT_FILE= nm-linux.h +NAT_FILE= config/nm-linux.h NATDEPFILES= sparc-nat.o sparc64-nat.o sparc64-linux-nat.o \ corelow.o core-regset.o \ fork-child.o inf-ptrace.o \ diff --git a/gdb/config/sparc/nm-linux.h b/gdb/config/sparc/nm-linux.h deleted file mode 100644 index abdeb52..0000000 --- a/gdb/config/sparc/nm-linux.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Native-dependent definitions for GNU/Linux SPARC. - - Copyright 1989, 1992, 1996, 1998, 1999, 2000, 2002, 2003, 2007 - 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. */ - -#ifndef NM_LINUX_H -#define NM_LINUX_H - -#include "config/nm-linux.h" - -/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */ -#define FETCH_INFERIOR_REGISTERS - -#endif /* nm-linux.h */ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 80771a7..8430eb7 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -3164,35 +3164,12 @@ linux_xfer_partial (struct target_ops *ops, enum target_object object, offset, len); } -#ifndef FETCH_INFERIOR_REGISTERS - -/* Return the address in the core dump or inferior of register - REGNO. */ - -static CORE_ADDR -linux_register_u_offset (int regno) -{ - /* FIXME drow/2005-09-04: The hardcoded use of register_addr should go - away. This requires disentangling the various definitions of it - (particularly alpha-nat.c's). */ - return register_addr (regno, 0); -} - -#endif - /* Create a prototype generic Linux target. The client can override it with local methods. */ -struct target_ops * -linux_target (void) +static void +linux_target_install_ops (struct target_ops *t) { - struct target_ops *t; - -#ifdef FETCH_INFERIOR_REGISTERS - t = inf_ptrace_target (); -#else - t = inf_ptrace_trad_target (linux_register_u_offset); -#endif t->to_insert_fork_catchpoint = child_insert_fork_catchpoint; t->to_insert_vfork_catchpoint = child_insert_vfork_catchpoint; t->to_insert_exec_catchpoint = child_insert_exec_catchpoint; @@ -3205,6 +3182,26 @@ linux_target (void) super_xfer_partial = t->to_xfer_partial; t->to_xfer_partial = linux_xfer_partial; +} + +struct target_ops * +linux_target (void) +{ + struct target_ops *t; + + t = inf_ptrace_target (); + linux_target_install_ops (t); + + return t; +} + +struct target_ops * +linux_trad_target (CORE_ADDR (*register_u_offset)(int)) +{ + struct target_ops *t; + + t = inf_ptrace_trad_target (register_u_offset); + linux_target_install_ops (t); return t; } diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index 744a392..997a0f4 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -88,6 +88,11 @@ struct lwp_info *iterate_over_lwps (int (*callback) (struct lwp_info *, override it with local methods. */ struct target_ops * linux_target (void); +/* Create a generic GNU/Linux target using traditional + ptrace register access. */ +struct target_ops * +linux_trad_target (CORE_ADDR (*register_u_offset)(int)); + /* Register the customized GNU/Linux target. This should be used instead of calling add_target directly. */ void linux_nat_add_target (struct target_ops *); diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index 15b23a2..d5a1202 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -26,6 +26,7 @@ #include "target.h" #include "linux-nat.h" #include "mips-linux-tdep.h" +#include "gdbcore.h" #include "gdb_proc_service.h" @@ -246,12 +247,24 @@ mips64_linux_store_registers (int regnum) super_store_registers (regnum); } +/* Return the address in the core dump or inferior of register + REGNO. */ + +static CORE_ADDR +mips_linux_register_u_offset (int regno) +{ + /* FIXME drow/2005-09-04: The hardcoded use of register_addr should go + away. This requires disentangling the various definitions of it + (particularly alpha-nat.c's). */ + return register_addr (regno, 0); +} + void _initialize_mips_linux_nat (void); void _initialize_mips_linux_nat (void) { - struct target_ops *t = linux_target (); + struct target_ops *t = linux_trad_target (mips_linux_register_u_offset); super_fetch_registers = t->to_fetch_registers; super_store_registers = t->to_store_registers; |