[PATCH]: Messy prototypes for supply_gregset and friends.

msnyder@cygnus.com msnyder@cygnus.com
Wed May 24 14:09:00 GMT 2000


There are fifteen GDB modules that each have an implementation of
supply_gregset and its siblings.  There are six modules that call
these functions.  Unfortunately, not all of the implementations use
the same parameter type for the gregset and/or fpregset arguments.

Most use gregset_t and fpregset_t -- but Solaris uses 
prgregset_t and prfpregset_t, and at least one Linux (i386)
uses elf_gregset_t and elf_fpregset_t.

This makes it hard to prototype the functions.  Procfs has used an
ugly workaround involving ifdefs and typedefs and autoconf.  Everybody
else just lets it slide.  This situation has existed long enough.

I propose a new file, "gregset.h", which will contain prototypes for
this family of functions, as well as a pair of typedefs, 
gdb_gregset_t and gdb_fpregset_t.  This header file will be included
only by modules that use or define the functions.  The default types
will be gregset_t and fpregset_t; any targets that want to use a
different type will define GDB_GREGSET_T and GDB_FPREGSET_T in their
nm.h file.  For instance, nm-sun4sol2.h will contain:

    #define GDB_GREGSET_T  prgregset_t
    #define GDB_FPREGSET_T prfpregset_t

[yeah, Andrew, I know, this doesn't solve the multi-arch issue...]

2000-05-24  Michael Snyder  <msnyder@seadog.cygnus.com>

        * gregset.h: New file.  Prototypes for supply_gregset etc.
        * procfs.h: Include gregset.h.  Delete local prototypes for
        supply_gregset etc., and local typedef gdb_gregset_t etc.
        * sol-thread.c: Include gregset.h, delete local prototypes, 
        add appropriate casts to gdb_gregset_t.
        * uw-thread.c, lin-thread.c, core-sol2.c, core-regset.c, 
        sparc-tdep.c, ptx4-nat.c, ppc-linux-nat.c, mipsv4-nat.c, 
        m88k-nat.c, m68klinux-nat.c, m68k-tdep.c, irix5-nat.c, 
        irix4-nat.c, ia64-linux-nat.c, i386v4-nat.c, cxux-nat.c,
        arm-linux-nat.c, alpha-nat.c: Include gregset.h.

Index: procfs.c
===================================================================
RCS file: /cvs/src/src/gdb/procfs.c,v
retrieving revision 1.12
diff -p -r1.12 procfs.c
*** procfs.c	2000/05/22 06:17:35	1.12
--- procfs.c	2000/05/24 20:55:55
*************** Inc., 59 Temple Place - Suite 330, Bosto
*** 89,94 ****
--- 89,97 ----
  
  #include "proc-utils.h"
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /* =================== TARGET_OPS "MODULE" =================== */
  
  /*
*************** typedef prstatus_t gdb_prstatus_t;
*** 245,268 ****
  typedef prstatus_t gdb_lwpstatus_t;
  #endif /* NEW_PROC_API */
  
- 
- /* These #ifdefs are for sol2.x in particular.  sol2.x has
-    both a "gregset_t" and a "prgregset_t", which have
-    similar uses but different layouts.  sol2.x gdb tries to
-    use prgregset_t (and prfpregset_t) everywhere. */
- 
- #ifdef GDB_GREGSET_TYPE
-   typedef GDB_GREGSET_TYPE gdb_gregset_t;
- #else
-   typedef gregset_t gdb_gregset_t;
- #endif
- 
- #ifdef GDB_FPREGSET_TYPE
-   typedef GDB_FPREGSET_TYPE gdb_fpregset_t;
- #else
-   typedef fpregset_t gdb_fpregset_t;
- #endif
- 
  /* Provide default composite pid manipulation macros for systems that
     don't have threads. */
  
--- 248,253 ----
*************** do_detach (signo)
*** 3469,3487 ****
   * So we cache the results, and mark the cache invalid when the process
   * is resumed.
   */
- 
- /* These could go in a header file, but the many and various
-    definitions of gregset_t would make it tricky and ugly.  Several
-    different native operating systems (notably Solaris and Linux) have
-    various different definitions for gregset_t and fpregset_t.  We
-    have been kludging around this problem for a while, it would be
-    nice if someday we came up with a prettier way of handling it
-    (FIXME).  */
- 
- extern void fill_gregset (gdb_gregset_t *, int);
- extern void fill_fpregset (gdb_fpregset_t *, int);
- extern void supply_gregset (gdb_gregset_t *);
- extern void supply_fpregset (gdb_fpregset_t *);
  
  static void
  procfs_fetch_registers (regno)
--- 3454,3459 ----
Index: sol-thread.c
===================================================================
RCS file: /cvs/src/src/gdb/sol-thread.c,v
retrieving revision 1.7
diff -p -r1.7 sol-thread.c
*** sol-thread.c	2000/05/08 22:34:38	1.7
--- sol-thread.c	2000/05/24 20:55:55
*************** extern struct target_ops procfs_ops;	/* 
*** 72,90 ****
  extern struct target_ops core_ops;	/* target vector for corelow.c */
  extern char *procfs_pid_to_str PARAMS ((int pid));
  
! /* Note that these prototypes differ slightly from those used in procfs.c
!    for of two reasons.  One, we can't use gregset_t, as that's got a whole
!    different meaning under Solaris (also, see above).  Two, we can't use the
!    pointer form here as these are actually arrays of ints (for Sparc's at
!    least), and are automatically coerced into pointers to ints when used as
!    parameters.  That makes it impossible to avoid a compiler warning when
!    passing pr{g fp}regset_t's from a parameter to an argument of one of
!    these functions.  */
! 
! extern void supply_gregset PARAMS ((const prgregset_t));
! extern void fill_gregset PARAMS ((prgregset_t, int));
! extern void supply_fpregset PARAMS ((const prfpregset_t *));
! extern void fill_fpregset PARAMS ((prfpregset_t *, int));
  
  /* This struct is defined by us, but mainly used for the proc_service interface.
     We don't have much use for it, except as a handy place to get a real pid
--- 72,79 ----
  extern struct target_ops core_ops;	/* target vector for corelow.c */
  extern char *procfs_pid_to_str PARAMS ((int pid));
  
! /* Prototypes for supply_gregset etc. */
! #include "gregset.h"
  
  /* This struct is defined by us, but mainly used for the proc_service interface.
     We don't have much use for it, except as a handy place to get a real pid
*************** sol_thread_fetch_registers (regno)
*** 660,667 ****
     because the td routines call ps_lget* which affect the values stored in the
     registers array.  */
  
!   supply_gregset (gregset);
!   supply_fpregset (&fpregset);
  
  #if 0
  /* thread_db doesn't seem to handle this right */
--- 649,656 ----
     because the td routines call ps_lget* which affect the values stored in the
     registers array.  */
  
!   supply_gregset  ((gdb_gregset_t *)  &gregset);
!   supply_fpregset ((gdb_fpregset_t *) &fpregset);
  
  #if 0
  /* thread_db doesn't seem to handle this right */
*************** sol_thread_store_registers (regno)
*** 688,694 ****
    thread_t thread;
    td_thrhandle_t thandle;
    td_err_e val;
!   prgregset_t regset;
    prfpregset_t fpregset;
  #if 0
    int xregsize;
--- 677,683 ----
    thread_t thread;
    td_thrhandle_t thandle;
    td_err_e val;
!   prgregset_t  gregset;
    prfpregset_t fpregset;
  #if 0
    int xregsize;
*************** sol_thread_store_registers (regno)
*** 716,722 ****
        char old_value[REGISTER_SIZE];
        memcpy (old_value, &registers[REGISTER_BYTE (regno)], REGISTER_SIZE);
  
!       val = p_td_thr_getgregs (&thandle, regset);
        if (val != TD_OK)
  	error ("sol_thread_store_registers: td_thr_getgregs %s",
  	       td_err_string (val));
--- 705,711 ----
        char old_value[REGISTER_SIZE];
        memcpy (old_value, &registers[REGISTER_BYTE (regno)], REGISTER_SIZE);
  
!       val = p_td_thr_getgregs (&thandle, gregset);
        if (val != TD_OK)
  	error ("sol_thread_store_registers: td_thr_getgregs %s",
  	       td_err_string (val));
*************** sol_thread_store_registers (regno)
*** 746,755 ****
  #endif
      }
  
!   fill_gregset (regset, regno);
!   fill_fpregset (&fpregset, regno);
  
!   val = p_td_thr_setgregs (&thandle, regset);
    if (val != TD_OK)
      error ("sol_thread_store_registers: td_thr_setgregs %s",
  	   td_err_string (val));
--- 735,744 ----
  #endif
      }
  
!   fill_gregset  ((gdb_gregset_t *)  &gregset,  regno);
!   fill_fpregset ((gdb_fpregset_t *) &fpregset, regno);
  
!   val = p_td_thr_setgregs (&thandle, gregset);
    if (val != TD_OK)
      error ("sol_thread_store_registers: td_thr_setgregs %s",
  	   td_err_string (val));
*************** ps_lgetregs (gdb_ps_prochandle_t ph, lwp
*** 1163,1169 ****
      procfs_ops.to_fetch_registers (-1);
    else
      orig_core_ops.to_fetch_registers (-1);
!   fill_gregset (gregset, -1);
  
    do_cleanups (old_chain);
  
--- 1152,1158 ----
      procfs_ops.to_fetch_registers (-1);
    else
      orig_core_ops.to_fetch_registers (-1);
!   fill_gregset ((gdb_gregset_t *) gregset, -1);
  
    do_cleanups (old_chain);
  
*************** ps_lsetregs (gdb_ps_prochandle_t ph, lwp
*** 1182,1188 ****
  
    inferior_pid = BUILD_LWP (lwpid, PIDGET (inferior_pid));
  
!   supply_gregset (gregset);
    if (target_has_execution)
      procfs_ops.to_store_registers (-1);
    else
--- 1171,1177 ----
  
    inferior_pid = BUILD_LWP (lwpid, PIDGET (inferior_pid));
  
!   supply_gregset ((gdb_gregset_t *) gregset);
    if (target_has_execution)
      procfs_ops.to_store_registers (-1);
    else
*************** ps_lgetfpregs (gdb_ps_prochandle_t ph, l
*** 1295,1301 ****
      procfs_ops.to_fetch_registers (-1);
    else
      orig_core_ops.to_fetch_registers (-1);
!   fill_fpregset (fpregset, -1);
  
    do_cleanups (old_chain);
  
--- 1284,1290 ----
      procfs_ops.to_fetch_registers (-1);
    else
      orig_core_ops.to_fetch_registers (-1);
!   fill_fpregset ((gdb_fpregset_t *) fpregset, -1);
  
    do_cleanups (old_chain);
  
*************** ps_lsetfpregs (gdb_ps_prochandle_t ph, l
*** 1314,1320 ****
  
    inferior_pid = BUILD_LWP (lwpid, PIDGET (inferior_pid));
  
!   supply_fpregset (fpregset);
    if (target_has_execution)
      procfs_ops.to_store_registers (-1);
    else
--- 1303,1309 ----
  
    inferior_pid = BUILD_LWP (lwpid, PIDGET (inferior_pid));
  
!   supply_fpregset ((gdb_fpregset_t *) fpregset);
    if (target_has_execution)
      procfs_ops.to_store_registers (-1);
    else
Index: uw-thread.c
===================================================================
RCS file: /cvs/src/src/gdb/uw-thread.c,v
retrieving revision 1.3
diff -p -r1.3 uw-thread.c
*** uw-thread.c	2000/03/02 06:05:03	1.3
--- uw-thread.c	2000/05/24 20:55:55
***************
*** 112,117 ****
--- 112,119 ----
  
  #include <synch.h>		/* for UnixWare 2.x */
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
  
  /* Whether to emit debugging output. */
  
Index: lin-thread.c
===================================================================
RCS file: /cvs/src/src/gdb/lin-thread.c,v
retrieving revision 1.4
diff -p -r1.4 lin-thread.c
*** lin-thread.c	2000/04/14 10:13:50	1.4
--- lin-thread.c	2000/05/24 20:55:55
***************
*** 125,130 ****
--- 125,133 ----
  
  #include <dlfcn.h>		/* dynamic library interface */
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  #ifndef TIDGET
  #define TIDGET(PID)		(((PID) & 0x7fffffff) >> 16)
  #define PIDGET(PID)		(((PID) & 0xffff))
Index: core-sol2.c
===================================================================
RCS file: /cvs/src/src/gdb/core-sol2.c,v
retrieving revision 1.1.1.3
diff -p -r1.1.1.3 core-sol2.c
*** core-sol2.c	1999/10/05 23:08:07	1.1.1.3
--- core-sol2.c	2000/05/24 20:55:55
***************
*** 27,32 ****
--- 27,38 ----
     and sparc-nat.c to be able to read both flavours.  */
  
  #include "defs.h"
+ 
+ #if defined (__sparcv9)	/* Is this gross? */
+ /* Fails to get included by the system header files.  */
+ # include <v9/sys/privregs.h>
+ #endif
+ 
  #include <time.h>
  #include <sys/types.h>
  #include <sys/regset.h>
***************
*** 39,44 ****
--- 45,53 ----
  #include "target.h"
  #include "command.h"
  #include "gdbcore.h"
+ 
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
  
  static void fetch_core_registers PARAMS ((char *, unsigned, int, CORE_ADDR));
  
Index: core-regset.c
===================================================================
RCS file: /cvs/src/src/gdb/core-regset.c,v
retrieving revision 1.2
diff -p -r1.2 core-regset.c
*** core-regset.c	2000/05/10 17:38:16	1.2
--- core-regset.c	2000/05/24 20:55:55
***************
*** 48,53 ****
--- 48,56 ----
  #include "command.h"
  #include "gdbcore.h"
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  static void fetch_core_registers PARAMS ((char *, unsigned, int, CORE_ADDR));
  
  void _initialize_core_regset PARAMS ((void));
Index: sparc-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sparc-tdep.c,v
retrieving revision 1.4
diff -p -r1.4 sparc-tdep.c
*** sparc-tdep.c	2000/05/24 17:17:46	1.4
--- sparc-tdep.c	2000/05/24 20:55:55
***************
*** 39,44 ****
--- 39,47 ----
  
  #include "symfile.h" 	/* for 'entry_point_address' */
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /*
   * Some local macros that have multi-arch and non-multi-arch versions:
   */
*************** sunos4_skip_trampoline_code (pc)
*** 1431,1445 ****
   */
  /* *INDENT-ON* */
  
- 
- 
  /* Given a pointer to a general register set in /proc format (gregset_t *),
     unpack the register contents and supply them as gdb's idea of the current
     register values. */
  
  void
  supply_gregset (gregsetp)
!      prgregset_t *gregsetp;
  {
    prgreg_t *regp = (prgreg_t *) gregsetp;
    int regi, offset = 0;
--- 1434,1446 ----
   */
  /* *INDENT-ON* */
  
  /* Given a pointer to a general register set in /proc format (gregset_t *),
     unpack the register contents and supply them as gdb's idea of the current
     register values. */
  
  void
  supply_gregset (gregsetp)
!      gdb_gregset_t *gregsetp;
  {
    prgreg_t *regp = (prgreg_t *) gregsetp;
    int regi, offset = 0;
*************** supply_gregset (gregsetp)
*** 1561,1567 ****
  
  void
  fill_gregset (gregsetp, regno)
!      prgregset_t *gregsetp;
       int regno;
  {
    prgreg_t *regp = (prgreg_t *) gregsetp;
--- 1562,1568 ----
  
  void
  fill_gregset (gregsetp, regno)
!      gdb_gregset_t *gregsetp;
       int regno;
  {
    prgreg_t *regp = (prgreg_t *) gregsetp;
*************** fill_gregset (gregsetp, regno)
*** 1643,1649 ****
  
  void
  supply_fpregset (fpregsetp)
!      prfpregset_t *fpregsetp;
  {
    register int regi;
    char *from;
--- 1644,1650 ----
  
  void
  supply_fpregset (fpregsetp)
!      gdb_fpregset_t *fpregsetp;
  {
    register int regi;
    char *from;
*************** supply_fpregset (fpregsetp)
*** 1682,1688 ****
  
  void
  fill_fpregset (fpregsetp, regno)
!      prfpregset_t *fpregsetp;
       int regno;
  {
    int regi;
--- 1683,1689 ----
  
  void
  fill_fpregset (fpregsetp, regno)
!      gdb_fpregset_t *fpregsetp;
       int regno;
  {
    int regi;
Index: ptx4-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/ptx4-nat.c,v
retrieving revision 1.2
diff -p -r1.2 ptx4-nat.c
*** ptx4-nat.c	2000/05/10 17:38:16	1.2
--- ptx4-nat.c	2000/05/24 20:55:55
***************
*** 26,31 ****
--- 26,34 ----
  #include <sys/param.h>
  #include <fcntl.h>
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /*  Given a pointer to a general register set in /proc format (gregset_t *),
     unpack the register contents and supply them as gdb's idea of the current
     register values. */
Index: ppc-linux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/ppc-linux-nat.c,v
retrieving revision 1.2
diff -p -r1.2 ppc-linux-nat.c
*** ppc-linux-nat.c	2000/02/22 18:47:41	1.2
--- ppc-linux-nat.c	2000/05/24 20:55:55
***************
*** 31,36 ****
--- 31,39 ----
  #include <fcntl.h>
  #include <sys/procfs.h>
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  int
  kernel_u_size ()
  {
Index: mipsv4-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/mipsv4-nat.c,v
retrieving revision 1.1.1.2
diff -p -r1.1.1.2 mipsv4-nat.c
*** mipsv4-nat.c	1999/07/07 20:08:12	1.1.1.2
--- mipsv4-nat.c	2000/05/24 20:55:55
***************
*** 27,32 ****
--- 27,35 ----
  #include <sys/procfs.h>
  #include <setjmp.h>		/* For JB_XXX.  */
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /* Size of elements in jmpbuf */
  
  #define JB_ELEMENT_SIZE 4
Index: m88k-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/m88k-nat.c,v
retrieving revision 1.1.1.3
diff -p -r1.1.1.3 m88k-nat.c
*** m88k-nat.c	1999/07/07 20:07:52	1.1.1.3
--- m88k-nat.c	2000/05/24 20:55:55
*************** m88k_register_u_addr (blockend, regnum)
*** 239,244 ****
--- 239,247 ----
  
  #include <sys/procfs.h>
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /*  Given a pointer to a general register set in /proc format (gregset_t *),
     unpack the register contents and supply them as gdb's idea of the current
     register values. */
Index: m68klinux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/m68klinux-nat.c,v
retrieving revision 1.1.1.2
diff -p -r1.1.1.2 m68klinux-nat.c
*** m68klinux-nat.c	1999/07/07 20:07:50	1.1.1.2
--- m68klinux-nat.c	2000/05/24 20:55:55
*************** m68k_linux_register_u_addr (blockend, re
*** 82,87 ****
--- 82,90 ----
  
  #ifndef USE_PROC_FS
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  void
  supply_gregset (gregsetp)
       gregset_t *gregsetp;
Index: m68k-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/m68k-tdep.c,v
retrieving revision 1.4
diff -p -r1.4 m68k-tdep.c
*** m68k-tdep.c	2000/04/28 05:50:19	1.4
--- m68k-tdep.c	2000/05/24 20:55:55
*************** lose:;
*** 507,512 ****
--- 507,515 ----
  
  #include <sys/procfs.h>
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /*  The /proc interface divides the target machine's register set up into
     two different sets, the general register set (gregset) and the floating
     point register set (fpregset).  For each set, there is an ioctl to get
Index: irix4-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/irix4-nat.c,v
retrieving revision 1.1.1.3
diff -p -r1.1.1.3 irix4-nat.c
*** irix4-nat.c	1999/10/05 23:08:24	1.1.1.3
--- irix4-nat.c	2000/05/24 20:55:55
***************
*** 30,35 ****
--- 30,38 ----
  #include <sys/procfs.h>
  #include <setjmp.h>		/* For JB_XXX.  */
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /* Size of elements in jmpbuf */
  
  #define JB_ELEMENT_SIZE 4
Index: irix5-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/irix5-nat.c,v
retrieving revision 1.3
diff -p -r1.3 irix5-nat.c
*** irix5-nat.c	2000/04/27 15:11:13	1.3
--- irix5-nat.c	2000/05/24 20:55:55
***************
*** 33,38 ****
--- 33,41 ----
  #include <sys/procfs.h>
  #include <setjmp.h>		/* For JB_XXX.  */
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  static void
  fetch_core_registers PARAMS ((char *, unsigned int, int, CORE_ADDR));
  
Index: i386v4-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/i386v4-nat.c,v
retrieving revision 1.2
diff -p -r1.2 i386v4-nat.c
*** i386v4-nat.c	2000/04/13 18:11:41	1.2
--- i386v4-nat.c	2000/05/24 20:55:55
***************
*** 31,36 ****
--- 31,39 ----
  
  #include <sys/procfs.h>
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /*  The /proc interface divides the target machine's register set up into
     two different sets, the general register set (gregset) and the floating
     point register set (fpregset).  For each set, there is an ioctl to get
Index: i386-linux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-linux-nat.c,v
retrieving revision 1.11
diff -p -r1.11 i386-linux-nat.c
*** i386-linux-nat.c	2000/05/04 19:25:57	1.11
--- i386-linux-nat.c	2000/05/24 20:55:55
***************
*** 35,40 ****
--- 35,43 ----
  #include <sys/reg.h>
  #endif
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /* On Linux, threads are implemented as pseudo-processes, in which
     case we may be tracing more than one process at a time.  In that
     case, inferior_pid will contain the main process ID and the
Index: cxux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/cxux-nat.c,v
retrieving revision 1.2
diff -p -r1.2 cxux-nat.c
*** cxux-nat.c	2000/04/27 15:11:13	1.2
--- cxux-nat.c	2000/05/24 20:55:55
*************** m88k_register_u_addr (blockend, regnum)
*** 281,286 ****
--- 281,289 ----
  
  #include <sys/procfs.h>
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /*  Given a pointer to a general register set in /proc format (gregset_t *),
     unpack the register contents and supply them as gdb's idea of the current
     register values. */
Index: arm-linux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/arm-linux-nat.c,v
retrieving revision 1.6
diff -p -r1.6 arm-linux-nat.c
*** arm-linux-nat.c	2000/04/20 21:13:19	1.6
--- arm-linux-nat.c	2000/05/24 20:55:55
***************
*** 28,33 ****
--- 28,36 ----
  #include <sys/utsname.h>
  #include <sys/procfs.h>
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  extern int arm_apcs_32;
  
  #define		typeNone		0x00
Index: alpha-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/alpha-nat.c,v
retrieving revision 1.1.1.3
diff -p -r1.1.1.3 alpha-nat.c
*** alpha-nat.c	1999/10/05 23:07:58	1.1.1.3
--- alpha-nat.c	2000/05/24 20:55:55
*************** kernel_u_size ()
*** 199,204 ****
--- 199,207 ----
  #if defined(USE_PROC_FS) || defined(HAVE_GREGSET_T)
  #include <sys/procfs.h>
  
+ /* Prototypes for supply_gregset etc. */
+ #include "gregset.h"
+ 
  /*
   * See the comment in m68k-tdep.c regarding the utility of these functions.
   */


More information about the Gdb-patches mailing list