2001-02-06 Michael Snyder <msnyder@makita.cygnus.com>
authorMichael Snyder <msnyder@vmware.com>
Tue, 6 Feb 2001 20:05:42 +0000 (20:05 +0000)
committerMichael Snyder <msnyder@vmware.com>
Tue, 6 Feb 2001 20:05:42 +0000 (20:05 +0000)
Submitted by Paul Hilfinger (hilfingr@gnat.com)
and Andrei Petrov (and@genesyslab.com).
* findvar.c: Buffers of size MAX_REGISTER_RAW_SIZE or REGISTER_BYTES
must be allocated dynamically, since these are no longer constants.
* infcmd.c: Ditto.
* regcache.c: Ditto.
* remote.c: Ditto.
* sol-thread.c: Ditto.
* valops.c: Ditto.
* config/sparc/sun4sol2.mh (MH_CFLAGS): Add -I/usr/include/v9, as a
work-around for a missing Sun header file in solaris for sparc64.

gdb/ChangeLog
gdb/config/sparc/sun4sol2.mh
gdb/findvar.c
gdb/infcmd.c
gdb/regcache.c
gdb/remote.c
gdb/sol-thread.c
gdb/valops.c

index 70beb845f1fea0b291b090439e5bfc1684423bc8..168b63a6afb453de397abe668f836c069e2c4953 100644 (file)
@@ -1,3 +1,16 @@
+2001-02-06  Michael Snyder  <msnyder@makita.cygnus.com>
+       Submitted by Paul Hilfinger (hilfingr@gnat.com) 
+       and Andrei Petrov (and@genesyslab.com).
+       * findvar.c: Buffers of size MAX_REGISTER_RAW_SIZE or REGISTER_BYTES
+       must be allocated dynamically, since these are no longer constants.
+       * infcmd.c: Ditto.
+       * regcache.c: Ditto.
+       * remote.c: Ditto.
+       * sol-thread.c: Ditto.
+       * valops.c: Ditto.
+       * config/sparc/sun4sol2.mh (MH_CFLAGS): Add -I/usr/include/v9, as a
+       work-around for a missing Sun header file in solaris for sparc64.
+
 2001-02-04  Philip Blundell  <philb@gnu.org>
 
        * config/arm/linux.mh (NATDEPFILES): Add proc-service.o,
index 4ab69c514ebbf055245aa31419bd1c904bdf0fff..9d246979921920a720a434325a166a3fe51f0740 100644 (file)
@@ -8,6 +8,9 @@ NAT_FILE= nm-sun4sol2.h
 NATDEPFILES= corelow.o core-sol2.o solib.o solib-svr4.o fork-child.o procfs.o \
        proc-api.o proc-events.o proc-flags.o proc-why.o
 
+# /usr/include/v9 is needed only by core-sol2.c when including 
+# v9/sys/privregs.h, or rather the headers it in turn includes.
+MH_CFLAGS=-I/usr/include/v9
 # If you are compiling with Sun's compiler, add the -xs option to CC
 # (e.g. `make CC="cc -xs"').
 # Sun's compilers require the -xs option to produce debug information
@@ -15,5 +18,5 @@ NATDEPFILES= corelow.o core-sol2.o solib.o solib-svr4.o fork-child.o procfs.o \
 # files only, with undocumented pointers to it in the linked executable.
 # This is commented out because we don't assume that the Sun compiler
 # is in use.
-#MH_CFLAGS=-xs
+#MH_CFLAGS=-xs -I/usr/include/v9
 HOST_IPC=-DBSD_IPC
index 002f3f328435cd79546cf82e18181e6d383173df..ea6cccf025547e1958b3aec49417f83cb2baca7e 100644 (file)
@@ -393,7 +393,7 @@ value_of_register (int regnum)
   CORE_ADDR addr;
   int optim;
   register value_ptr reg_val;
-  char raw_buffer[MAX_REGISTER_RAW_SIZE];
+  char *raw_buffer = (char*) alloca (MAX_REGISTER_RAW_SIZE);
   enum lval_type lval;
 
   get_saved_register (raw_buffer, &optim, &addr,
@@ -606,7 +606,7 @@ addresses have not been bound by the dynamic loader. Try again when executable i
     case LOC_BASEREG:
     case LOC_BASEREG_ARG:
       {
-       char buf[MAX_REGISTER_RAW_SIZE];
+       char *buf = (char*) alloca (MAX_REGISTER_RAW_SIZE);
        get_saved_register (buf, NULL, NULL, frame, SYMBOL_BASEREG (var),
                            NULL);
        addr = extract_address (buf, REGISTER_RAW_SIZE (SYMBOL_BASEREG (var)));
@@ -616,7 +616,7 @@ addresses have not been bound by the dynamic loader. Try again when executable i
 
     case LOC_THREAD_LOCAL_STATIC:
       {
-       char buf[MAX_REGISTER_RAW_SIZE];
+       char *buf = (char*) alloca (MAX_REGISTER_RAW_SIZE);
 
        get_saved_register (buf, NULL, NULL, frame, SYMBOL_BASEREG (var),
                            NULL);
@@ -711,7 +711,7 @@ addresses have not been bound by the dynamic loader. Try again when executable i
 value_ptr
 value_from_register (struct type *type, int regnum, struct frame_info *frame)
 {
-  char raw_buffer[MAX_REGISTER_RAW_SIZE];
+  char *raw_buffer = (char*) alloca (MAX_REGISTER_RAW_SIZE);
   CORE_ADDR addr;
   int optim;
   value_ptr v = allocate_value (type);
index 6f43eba65a6ac2d409f7294c1c84ffdfdaf267d0..6eb3d83a387f008c7a920804345813eb2cfb1628 100644 (file)
@@ -1467,8 +1467,8 @@ do_registers_info (int regnum, int fpregs)
 
   for (i = 0; i < numregs; i++)
     {
-      char raw_buffer[MAX_REGISTER_RAW_SIZE];
-      char virtual_buffer[MAX_REGISTER_VIRTUAL_SIZE];
+      char *raw_buffer = (char*) alloca (MAX_REGISTER_RAW_SIZE);
+      char *virtual_buffer = (char*) alloca (MAX_REGISTER_VIRTUAL_SIZE);
 
       /* Decide between printing all regs, nonfloat regs, or specific reg.  */
       if (regnum == -1)
index 6e5a2c19580dd7ca3b6d60a89268d0e17150badb..db963f769dce746d44accc6ffd516e9312f9844f 100644 (file)
@@ -558,7 +558,7 @@ write_register_bytes (int myregstart, char *myaddr, int inlen)
       /* The register partially overlaps the range being written.  */
       else
        {
-         char regbuf[MAX_REGISTER_RAW_SIZE];
+         char *regbuf = (char*) alloca (MAX_REGISTER_RAW_SIZE);
          /* What's the overlap between this register's bytes and
              those the caller wants to write?  */
          int overlapstart = max (regstart, myregstart);
index 2a000363937b97b17cada164a917c4e013dcae14..b79634d3260a8dceb98f80b342d35b421334d81c 100644 (file)
@@ -2604,7 +2604,7 @@ remote_wait (int pid, struct target_waitstatus *status)
          {
            int i;
            long regno;
-           char regs[MAX_REGISTER_RAW_SIZE];
+           char* regs = (char*) alloca (MAX_REGISTER_RAW_SIZE);
 
            /* Expedited reply, containing Signal, {regno, reg} repeat */
            /*  format is:  'Tssn...:r...;n...:r...;n...:r...;#cc', where
@@ -2825,7 +2825,7 @@ remote_async_wait (int pid, struct target_waitstatus *status)
          {
            int i;
            long regno;
-           char regs[MAX_REGISTER_RAW_SIZE];
+           char* regs = (char*) alloca (MAX_REGISTER_RAW_SIZE);
 
            /* Expedited reply, containing Signal, {regno, reg} repeat */
            /*  format is:  'Tssn...:r...;n...:r...;n...:r...;#cc', where
index d4325a071f4218d1df5cce588a2989c79f46a27f..f7727b483d860d53e2f04de1932fff3afad0f266 100644 (file)
@@ -685,7 +685,7 @@ sol_thread_store_registers (int regno)
   if (regno != -1)
     {                          /* Not writing all the regs */
       /* save new register value */
-      char old_value[REGISTER_SIZE];
+      char* old_value = (char*) alloca (REGISTER_SIZE);
       memcpy (old_value, &registers[REGISTER_BYTE (regno)], REGISTER_SIZE);
 
       val = p_td_thr_getgregs (&thandle, gregset);
index 9a90e3d749a99396d3d2632f5a6ea38800081306..ce15c2007eba7c76c8ad82b4a00611da45bad164 100644 (file)
@@ -570,7 +570,7 @@ value_assign (register value_ptr toval, register value_ptr fromval)
 {
   register struct type *type;
   register value_ptr val;
-  char raw_buffer[MAX_REGISTER_RAW_SIZE];
+  char *raw_buffer = (char*) alloca (MAX_REGISTER_RAW_SIZE);
   int use_buffer = 0;
 
   if (!toval->modifiable)
@@ -1027,7 +1027,7 @@ CORE_ADDR
 push_word (CORE_ADDR sp, ULONGEST word)
 {
   register int len = REGISTER_SIZE;
-  char buffer[MAX_REGISTER_RAW_SIZE];
+  char *buffer = alloca (MAX_REGISTER_RAW_SIZE);
 
   store_unsigned_integer (buffer, len, word);
   if (INNER_THAN (1, 2))
@@ -1665,7 +1665,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
     SAVE_DUMMY_FRAME_TOS (sp);
 
   {
-    char retbuf[REGISTER_BYTES];
+    char *retbuf = (char*) alloca (REGISTER_BYTES);
     char *name;
     struct symbol *symbol;