From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cagney To: Mark Kettenis Cc: gdb-patches@sources.redhat.com Subject: Re: [rfa/i387] Eliminate HOST_*_FORMAT from i387-tdep.c Date: Wed, 04 Jul 2001 12:18:00 -0000 Message-id: <3B436BF9.1000102@cygnus.com> References: <3B3CB299.5000100@cygnus.com> X-SW-Source: 2001-07/msg00054.html Thanks! I've checked in the attatched. It added a few more comments and the suggested assertion. (and ``. '' :-) Andrew >From dmj+@andrew.cmu.edu Wed Jul 04 12:19:00 2001 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: [RFA] The MIPS/Linux port Date: Wed, 04 Jul 2001 12:19:00 -0000 Message-id: <20010704121952.A17445@nevyn.them.org> X-SW-Source: 2001-07/msg00055.html Content-length: 22994 Like any new port, this is dependent on a fair number of other sources. If you actually want it to work, for instance, you'll need: - A recent CVS kernel from oss.sgi.com, to have ptrace behave right in the first place. - A patch I posted there which is still being considered, if you want to debug programs that use the FPU and not have them become completely confused. - A compiler/assembler that emit debug info we can cope with. GCC 2.95.2 and binutils 2.10.91.* are fairly good for this. Note that: * the mdebug information emitted when you use GCC 3.0 crashes gdb; I posted a patch for this a week ago and got no comments. * the stabs-in-elf emitted by recent binutils is not compatible with the way any GCC version emits stabs for mips; this needs to be addressed in either binutils or gcc, and HJ posted a potential patch for it two days ago. * Dwarf2 debugging does not appear to work properly; I'll look into it once the dust settles a little. The only outstanding gdb patches on which this one really depends are the two mips-tdep.c patches posted today. I also have a few more for ABI issues which still need some tweaking. I imagine I break multi-arch in all sorts of unpleasant ways, etc. etc. I'd like to get this in and then fix it up, if possible; it's a little on the large side :) I imagine it'll take a couple iterations anyway, though. Comments welcome! (approval even more so) -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer 2001-07-04 Daniel Jacobowitz * mips-linux-tdep.c: New file. * mips-linux-nat.c: New file. * config/mips/linux.mh: New file. * config/mips/linux.mt: New file. * config/mips/xm-linux.h: New file. * config/mips/nm-linux.h: New file. * config/mips/tm-linux.h: New file. * configure.host: Recognize mips*-*-linux. * configure.tgt: Likewise. Index: gdb/mips-linux-tdep.c =================================================================== RCS file: N/A diff -u /dev/null gdb/mips-linux-tdep.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ gdb/mips-linux-tdep.c Mon Jun 11 16:01:57 2001 @@ -0,0 +1,332 @@ +/* Low level MIPS/Linux interface, for GDB ELF core debugging. + Copyright 1996, 2001 Free Software Foundation, Inc. + Contributed by David S. Miller (davem@caip.rutgers.edu) at + Rutgers University CAIP Research Center. + +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 "gdbcore.h" +#include "target.h" +#include "solib-svr4.h" + +/* From */ +#define ELF_NGREG 45 +#define ELF_NFPREG 33 + +typedef unsigned char elf_greg_t[4]; +typedef elf_greg_t elf_gregset_t[ELF_NGREG]; + +typedef unsigned char elf_fpreg_t[8]; +typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; + +/* 0 - 31 are integer registers, 32 - 63 are fp registers. */ +#define FPR_BASE 32 +#define PC 64 +#define CAUSE 65 +#define BADVADDR 66 +#define MMHI 67 +#define MMLO 68 +#define FPC_CSR 69 +#define FPC_EIR 70 + +#define EF_REG0 6 +#define EF_REG31 37 +#define EF_LO 38 +#define EF_HI 39 +#define EF_CP0_EPC 40 +#define EF_CP0_BADVADDR 41 +#define EF_CP0_STATUS 42 +#define EF_CP0_CAUSE 43 + +#define EF_SIZE 180 /* size in bytes */ + +/* Figure out where the longjmp will land. + We expect the first arg to be a pointer to the jmp_buf structure from which + we extract the pc (JB_PC) that we will land at. The pc is copied into PC. + This routine returns true on success. */ + +int +get_longjmp_target (pc) + CORE_ADDR *pc; +{ + CORE_ADDR jb_addr; + char buf[TARGET_PTR_BIT / TARGET_CHAR_BIT]; + + jb_addr = read_register (A0_REGNUM); + + if (target_read_memory (jb_addr + JB_PC * JB_ELEMENT_SIZE, buf, + TARGET_PTR_BIT / TARGET_CHAR_BIT)) + return 0; + + *pc = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT); + + return 1; +} + + +/* + * See the comment in m68k-tdep.c regarding the utility of these functions. + * + * These definitions are from the MIPS SVR4 ABI, so they may work for + * any MIPS SVR4 target. + */ + +void +supply_gregset (gregsetp) + elf_gregset_t *gregsetp; +{ + int regi; + elf_greg_t *regp = *gregsetp; + static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0}; + + for (regi = EF_REG0; regi <= EF_REG31; regi++) + supply_register ((regi - EF_REG0), (char *)(regp + regi)); + + supply_register (LO_REGNUM, (char *)(regp + EF_LO)); + supply_register (HI_REGNUM, (char *)(regp + EF_HI)); + + supply_register (PC_REGNUM, (char *)(regp + EF_CP0_EPC)); + supply_register (BADVADDR_REGNUM, (char *)(regp + EF_CP0_BADVADDR)); + supply_register (PS_REGNUM, (char *)(regp + EF_CP0_STATUS)); + supply_register (CAUSE_REGNUM, (char *)(regp + EF_CP0_CAUSE)); + + /* Fill inaccessible registers with zero. */ + supply_register (FP_REGNUM, zerobuf); + supply_register (UNUSED_REGNUM, zerobuf); + for (regi = FIRST_EMBED_REGNUM; regi < LAST_EMBED_REGNUM; regi++) + supply_register (regi, zerobuf); +} + +void +fill_gregset (gregsetp, regno) + elf_gregset_t *gregsetp; + int regno; +{ + int regi; + elf_greg_t *regp = *gregsetp; + + memset ((char *) regp, 0, sizeof (elf_gregset_t)); + +#define fill(regp, regi, offset) \ + memcpy((char *)((regp) + (offset)), \ + ®isters[REGISTER_BYTE (regi)], \ + sizeof (elf_greg_t)) + + for (regi = EF_REG0; regi <= EF_REG31; regi++) + fill (regp, regi - EF_REG0, regi); + + fill (regp, LO_REGNUM, EF_LO); + fill (regp, HI_REGNUM, EF_HI); + + fill (regp, PC_REGNUM, EF_CP0_EPC); + fill (regp, BADVADDR_REGNUM, EF_CP0_BADVADDR); + fill (regp, PS_REGNUM, EF_CP0_STATUS); + fill (regp, CAUSE_REGNUM, EF_CP0_CAUSE); +#undef fill +} + +/* Now we do the same thing for floating-point registers. + * We don't bother to condition on FP0_REGNUM since any + * reasonable MIPS configuration has an R3010 in it. + * + * Again, see the comments in m68k-tdep.c. + */ + +void +supply_fpregset (fpregsetp) + elf_fpregset_t *fpregsetp; +{ + register int regi; + static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0}; + + for (regi = 0; regi < 32; regi++) + supply_register (FP0_REGNUM + regi, + (char *)(*fpregsetp + regi)); + + supply_register (FCRCS_REGNUM, (char *)(*fpregsetp + 32)); + + /* FIXME: how can we supply FCRIR_REGNUM? The ABI doesn't tell us. */ + supply_register (FCRIR_REGNUM, zerobuf); +} + +void +fill_fpregset (fpregsetp, regno) + elf_fpregset_t *fpregsetp; + int regno; +{ + int regi; + char *from, *to; + + for (regi = 0; regi < 32; regi++) + { + if ((regno == -1) || (regno == FP0_REGNUM + regi)) + { + from = (char *) ®isters[REGISTER_BYTE (regi + FP0_REGNUM)]; + to = (char *) (*fpregsetp + regi); + memcpy (to, from, REGISTER_RAW_SIZE (regi)); + } + } + + if ((regno == -1) || (regno == FCRCS_REGNUM)) + { + from = (char *) ®isters[REGISTER_BYTE (FCRCS_REGNUM)]; + to = (char *) (*fpregsetp + 32); + memcpy (to, from, REGISTER_RAW_SIZE (FCRCS_REGNUM)); + } +} + +/* Map gdb internal register number to ptrace ``address''. + These ``addresses'' are defined in */ + +#define REGISTER_PTRACE_ADDR(regno) \ + (regno < 32 ? regno \ + : (regno >= FP0_REGNUM && regno < FP0_REGNUM + 32) ? \ + FPR_BASE + (regno - FP0_REGNUM) \ + : regno == PC_REGNUM ? PC \ + : regno == CAUSE_REGNUM ? CAUSE \ + : regno == BADVADDR_REGNUM ? BADVADDR \ + : regno == LO_REGNUM ? MMLO \ + : regno == HI_REGNUM ? MMHI \ + : regno == FCRCS_REGNUM ? FPC_CSR \ + : regno == FCRIR_REGNUM ? FPC_EIR \ + : 0) + +/* Return the ptrace ``address'' of register REGNO. */ + +CORE_ADDR +register_addr (regno, blockend) + int regno; + CORE_ADDR blockend; +{ + int regaddr; + + if (regno < 0 || regno >= NUM_REGS) + error ("Bogon register number %d.", regno); + + regaddr = REGISTER_PTRACE_ADDR (regno); + + if (regno != 0 && regaddr == 0) + error ("Unknowable register number %d.", regno); + + return regaddr; +} + +static void fetch_core_registers PARAMS ((char *, unsigned, int, CORE_ADDR)); + +void _initialize_core_regset PARAMS ((void)); + +/* + Use a local version of this function to get the correct types for regsets. +*/ + +static void +fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr) + char *core_reg_sect; + unsigned core_reg_size; + int which; + CORE_ADDR reg_addr; /* Unused in this version */ +{ + elf_gregset_t gregset; + elf_fpregset_t fpregset; + + if (which == 0) + { + if (core_reg_size != sizeof (gregset)) + { + warning ("wrong size gregset struct in core file"); + } + else + { + memcpy ((char *) &gregset, core_reg_sect, sizeof (gregset)); + supply_gregset (&gregset); + } + } + else if (which == 2) + { + if (core_reg_size != sizeof (fpregset)) + { + warning ("wrong size fpregset struct in core file"); + } + else + { + memcpy ((char *) &fpregset, core_reg_sect, sizeof (fpregset)); + supply_fpregset (&fpregset); + } + } +} + + +/* Register that we are able to handle ELF file formats using standard + procfs "regset" structures. */ + +static struct core_fns regset_core_fns = +{ + bfd_target_elf_flavour, /* core_flavour */ + default_check_format, /* check_format */ + default_core_sniffer, /* core_sniffer */ + fetch_core_registers, /* core_read_registers */ + NULL /* next */ +}; + +void +_initialize_core_regset () +{ + add_core_fns (®set_core_fns); +} + + +/* Fetch (and possibly build) an appropriate link_map_offsets + structure for native Linux/MIPS targets using the struct offsets + defined in link.h (but without actual reference to that file). + + This makes it possible to access Linux/MIPS shared libraries from a + GDB that was not built on an Linux/MIPS host (for cross debugging). */ + +struct link_map_offsets * +mips_linux_svr4_fetch_link_map_offsets (void) +{ + static struct link_map_offsets lmo; + static struct link_map_offsets *lmp = NULL; + + if (lmp == NULL) + { + lmp = &lmo; + + lmo.r_debug_size = 8; /* The actual size is 20 bytes, but + this is all we need. */ + lmo.r_map_offset = 4; + lmo.r_map_size = 4; + + lmo.link_map_size = 20; + + lmo.l_addr_offset = 0; + lmo.l_addr_size = 4; + + lmo.l_name_offset = 4; + lmo.l_name_size = 4; + + lmo.l_next_offset = 12; + lmo.l_next_size = 4; + + lmo.l_prev_offset = 16; + lmo.l_prev_size = 4; + } + + return lmp; +} Index: gdb/mips-linux-nat.c =================================================================== RCS file: N/A diff -u /dev/null gdb/mips-linux-nat.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ gdb/mips-linux-nat.c Mon Jun 11 16:01:57 2001 @@ -0,0 +1,31 @@ +/* Low level MIPS/Linux interface, for GDB when running native. + Copyright 1996, 2001 Free Software Foundation, Inc. + Contributed by David S. Miller (davem@caip.rutgers.edu) at + Rutgers University CAIP Research Center. + +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 + +/* Return the size of the user struct. */ + +int +kernel_u_size (void) +{ + return (sizeof (struct user)); +} + Index: gdb/config/mips/xm-linux.h =================================================================== RCS file: N/A diff -u /dev/null gdb/config/mips/xm-linux.h --- /dev/null Wed Dec 31 16:00:00 1969 +++ gdb/config/mips/xm-linux.h Mon Jun 11 16:01:57 2001 @@ -0,0 +1,43 @@ +/* Definitions for Linux/MIPS hosting support. + +Copyright (C) 1996, 2001 Free Software Foundation, Inc. + +Contributed by David S. Miller (davem@caip.rutgers.edu) at +Rutgers University CAIP Research Center. + +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 XM_MIPSLINUX_H +#define XM_MIPSLINUX_H + +#ifndef HOST_BYTE_ORDER +#include +#if __BYTE_ORDER == __BIG_ENDIAN +#define HOST_BYTE_ORDER BIG_ENDIAN +#else +#define HOST_BYTE_ORDER LITTLE_ENDIAN +#endif +#endif + +#define HAVE_TERMIOS + +#define NEED_POSIX_SETPGID + +/* Need R_OK etc, but USG isn't defined. */ +#include + +#endif /* XM_MIPSLINUX_H */ Index: gdb/config/mips/tm-linux.h =================================================================== RCS file: N/A diff -u /dev/null gdb/config/mips/tm-linux.h --- /dev/null Wed Dec 31 16:00:00 1969 +++ gdb/config/mips/tm-linux.h Thu Jun 14 22:51:24 2001 @@ -0,0 +1,89 @@ +/* Definitions to make GDB run on a MIPS box under Linux. The + definitions here are used when the _target_ system is running Linux. + Copyright 1996, 2001 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 TM_MIPSLINUX_H +#define TM_MIPSLINUX_H + +#include "mips/tm-mips.h" + +/* We don't want to inherit tm-mips.h's shared library trampoline code. */ + +#undef IN_SOLIB_CALL_TRAMPOLINE +#undef IN_SOLIB_RETURN_TRAMPOLINE +#undef SKIP_TRAMPOLINE_CODE +#undef IGNORE_HELPER_CALL + +/* FIXME: Do not include "tm-linux.h", because we do not want the host's + . Instead, copy the non-signal bits for now. */ + +/* We need this file for the SOLIB_TRAMPOLINE stuff. */ + +#include "tm-sysv4.h" + +/* We define SVR4_SHARED_LIBS unconditionally, on the assumption that + link.h is available on all linux platforms. For I386 and SH3/4, + we hard-code the information rather than use link.h anyway (for + the benefit of cross-debugging). We may move to doing that for + other architectures as well. */ + +#define SVR4_SHARED_LIBS +#include "solib.h" /* Support for shared libraries. */ + +/* End from "tm-linux.h". */ + +/* There's an E_MIPS_ABI_O32 flag in e_flags, but we don't use it - in + fact, using it may violate o32. */ +#define MIPS_DEFAULT_ABI MIPS_ABI_O32 + +/* Linux/MIPS has __SIGRTMAX == 127. */ + +#define REALTIME_LO 32 +#define REALTIME_HI 128 + +/* Use target_specific function to define link map offsets. */ + +extern struct link_map_offsets *mips_linux_svr4_fetch_link_map_offsets (void); +#define SVR4_FETCH_LINK_MAP_OFFSETS() mips_linux_svr4_fetch_link_map_offsets () + +/* Details about jmp_buf. */ + +#define JB_ELEMENT_SIZE 4 +#define JB_PC 0 + +/* Figure out where the longjmp will land. Slurp the args out of the + stack. We expect the first arg to be a pointer to the jmp_buf + structure from which we extract the pc (JB_PC) that we will land + at. The pc is copied into ADDR. This routine returns true on + success. */ + +#define GET_LONGJMP_TARGET(ADDR) get_longjmp_target(ADDR) +extern int get_longjmp_target (CORE_ADDR *); + +/* Just like the Sparc, we do single stepping in software, this + feature does _not_ belong in the kernel as far as I'm concerned. */ +#define SOFTWARE_SINGLE_STEP_P() 1 +extern void mips_software_single_step PARAMS ((unsigned int, int)); +#define SOFTWARE_SINGLE_STEP(sig,bp_p) mips_software_single_step (sig, bp_p) + +/* XXX TODO */ +#undef IN_SIGTRAMP +#define IN_SIGTRAMP(pc, name) (0) + +#endif /* TM_MIPSLINUX_H */ Index: gdb/config/mips/nm-linux.h =================================================================== RCS file: N/A diff -u /dev/null gdb/config/mips/nm-linux.h --- /dev/null Wed Dec 31 16:00:00 1969 +++ gdb/config/mips/nm-linux.h Tue Jul 3 15:23:44 2001 @@ -0,0 +1,68 @@ +/* Definitions for native support of Linux/MIPS. + +Copyright (C) 1996, 2001 Free Software Foundation, Inc. + +Contributed by David S. Miller (davem@caip.rutgers.edu) at +Rutgers University CAIP Research Center. + +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_MIPSLINUX_H +#define NM_MIPSLINUX_H + +#define MIPS_GNULINUX_TARGET + +#include "nm-linux.h" + +/* Return sizeof user struct to callers in less machine dependent + routines. */ +extern int kernel_u_size (void); +#define KERNEL_U_SIZE kernel_u_size() + +/* ptrace register ``addresses'' are absolute. */ +#define U_REGS_OFFSET 0 + +#define PTRACE_ARG3_TYPE long + +/* ptrace transfers longs */ +#define PTRACE_XFER_TYPE long + +#define REGISTER_U_ADDR(addr, blockend, regno) (addr) = mips_register_addr ((regno),(blockend)) + +/* Pseudo registers and processor status / zero */ +#define CANNOT_FETCH_REGISTER(regno) \ + ((regno) == PS_REGNUM || (regno) == ZERO_REGNUM || (regno) >= FP_REGNUM) +#define CANNOT_STORE_REGISTER(regno) \ + ((regno) == PS_REGNUM || (regno) == ZERO_REGNUM || (regno) >= FP_REGNUM \ + || (regno) == BADVADDR_REGNUM || (regno) == CAUSE_REGNUM || (regno) == FCRIR_REGNUM) + +/* FIXME: This should be moved to ../nm-linux.h once we have converted all + Linux targets to use the new threads stuff (without the #undef of + course). */ +extern int lin_lwp_prepare_to_proceed (void); +#undef PREPARE_TO_PROCEED +#define PREPARE_TO_PROCEED(select_it) lin_lwp_prepare_to_proceed () + +extern void lin_lwp_attach_lwp (ptid_t ptid, int verbose); +#define ATTACH_LWP(ptid, verbose) lin_lwp_attach_lwp ((ptid), (verbose)) + +#include + +extern void lin_thread_get_thread_signals (sigset_t *mask); +#define GET_THREAD_SIGNALS(mask) lin_thread_get_thread_signals (mask) + +#endif /* NM_MIPSLINUX_H */ Index: gdb/config/mips/linux.mh =================================================================== RCS file: N/A diff -u /dev/null gdb/config/mips/linux.mh --- /dev/null Wed Dec 31 16:00:00 1969 +++ gdb/config/mips/linux.mh Mon Jun 11 16:01:57 2001 @@ -0,0 +1,8 @@ +# Host: Big-endian MIPS running Linux +XDEPFILES= +XM_FILE= xm-linux.h +NAT_FILE= nm-linux.h +NATDEPFILES= infptrace.o inftarg.o fork-child.o mips-linux-nat.o \ + thread-db.o lin-lwp.o proc-service.o + +LOADLIBES = -ldl -rdynamic Index: gdb/config/mips/linux.mt =================================================================== RCS file: N/A diff -u /dev/null gdb/config/mips/linux.mt --- /dev/null Wed Dec 31 16:00:00 1969 +++ gdb/config/mips/linux.mt Mon Jun 11 16:01:57 2001 @@ -0,0 +1,8 @@ +# Target: Big-endian MIPS +TDEPFILES= mips-tdep.o mips-linux-tdep.o corelow.o solib.o solib-svr4.o solib-legacy.o +TM_FILE= tm-linux.h + +GDBSERVER_DEPFILES= low-linux.o + +SIM_OBS = remote-sim.o +SIM = ../sim/mips/libsim.a Index: gdb/configure.host =================================================================== RCS file: /cvs/src/src/gdb/configure.host,v retrieving revision 1.22 diff -u -p -r1.22 configure.host --- gdb/configure.host 2001/06/15 19:23:45 1.22 +++ gdb/configure.host 2001/07/04 19:02:27 @@ -16,6 +16,7 @@ hppa*) gdb_host_cpu=pa ;; i[3456]86*) gdb_host_cpu=i386 ;; m68*) gdb_host_cpu=m68k ;; m88*) gdb_host_cpu=m88k ;; +mips*) gdb_host_cpu=mips ;; powerpc*) gdb_host_cpu=powerpc ;; sparc64) gdb_host_cpu=sparc ;; s390*) gdb_host_cpu=s390 ;; @@ -118,6 +119,7 @@ mips-sgi-irix4*) gdb_host=irix4 ;; mips-sgi-irix5*) gdb_host=irix5 ;; mips-sgi-irix6*) gdb_host=irix6 ;; mips-sony-*) gdb_host=news-mips ;; +mips*-*-linux*) gdb_host=linux ;; mips-*-mach3*) gdb_host=mipsm3 ;; mips-*-sysv4*) gdb_host=mipsv4 ;; mips-*-sysv*) gdb_host=riscos ;; Index: gdb/configure.tgt =================================================================== RCS file: /cvs/src/src/gdb/configure.tgt,v retrieving revision 1.30 diff -u -p -r1.30 configure.tgt --- gdb/configure.tgt 2001/06/15 19:23:45 1.30 +++ gdb/configure.tgt 2001/07/04 19:02:27 @@ -211,6 +211,7 @@ mips*-sgi-irix5*) gdb_target=irix5 ;; mips*-sgi-irix6*) gdb_target=irix6 ;; mips*-sgi-*) gdb_target=irix3 ;; mips*-sony-*) gdb_target=bigmips ;; +mips*-*-linux*) gdb_target=linux ;; mips*-*-mach3*) gdb_target=mipsm3 ;; mips*-*-sysv4*) gdb_target=mipsv4 ;; mips*-*-sysv*) gdb_target=bigmips ;;