This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
gdb under solaris7
- To: gdb-patches at sourceware dot cygnus dot com
- Subject: gdb under solaris7
- From: Andrei Petrov <and at genesyslab dot com>
- Date: Wed, 30 Aug 2000 17:24:31 -0700 (PDT)
The patch below lets to build gdb with SUNWspro cc compiler.
The problem is that gdb sources use on gnu c extension
'array of variable length'.
--
Andrey
Index: findvar.c
===================================================================
RCS file: /cvs/src/src/gdb/findvar.c,v
retrieving revision 1.15
diff -c -r1.15 findvar.c
*** findvar.c 2000/07/30 01:48:25 1.15
--- findvar.c 2000/08/30 20:00:03
***************
*** 393,399 ****
CORE_ADDR addr;
int optim;
register value_ptr reg_val;
! char raw_buffer[MAX_REGISTER_RAW_SIZE];
enum lval_type lval;
get_saved_register (raw_buffer, &optim, &addr,
--- 393,399 ----
CORE_ADDR addr;
int optim;
register value_ptr reg_val;
! char *raw_buffer = alloca(MAX_REGISTER_RAW_SIZE);
enum lval_type lval;
get_saved_register (raw_buffer, &optim, &addr,
***************
*** 606,612 ****
case LOC_BASEREG:
case LOC_BASEREG_ARG:
{
! char buf[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)));
--- 606,612 ----
case LOC_BASEREG:
case LOC_BASEREG_ARG:
{
! char *buf = 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,622 ****
case LOC_THREAD_LOCAL_STATIC:
{
! char buf[MAX_REGISTER_RAW_SIZE];
get_saved_register (buf, NULL, NULL, frame, SYMBOL_BASEREG (var),
NULL);
--- 616,622 ----
case LOC_THREAD_LOCAL_STATIC:
{
! char *buf = alloca(MAX_REGISTER_RAW_SIZE);
get_saved_register (buf, NULL, NULL, frame, SYMBOL_BASEREG (var),
NULL);
***************
*** 711,717 ****
value_ptr
value_from_register (struct type *type, int regnum, struct frame_info *frame)
{
! char raw_buffer[MAX_REGISTER_RAW_SIZE];
CORE_ADDR addr;
int optim;
value_ptr v = allocate_value (type);
--- 711,717 ----
value_ptr
value_from_register (struct type *type, int regnum, struct frame_info *frame)
{
! char *raw_buffer = alloca(MAX_REGISTER_RAW_SIZE);
CORE_ADDR addr;
int optim;
value_ptr v = allocate_value (type);
Index: infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.10
diff -c -r1.10 infcmd.c
*** infcmd.c 2000/08/01 14:48:00 1.10
--- infcmd.c 2000/08/30 20:00:04
***************
*** 1449,1456 ****
for (i = 0; i < numregs; i++)
{
! char raw_buffer[MAX_REGISTER_RAW_SIZE];
! char virtual_buffer[MAX_REGISTER_VIRTUAL_SIZE];
/* Decide between printing all regs, nonfloat regs, or specific reg. */
if (regnum == -1)
--- 1449,1456 ----
for (i = 0; i < numregs; i++)
{
! char *raw_buffer = alloca(MAX_REGISTER_RAW_SIZE);
! char *virtual_buffer = alloca(MAX_REGISTER_VIRTUAL_SIZE);
/* Decide between printing all regs, nonfloat regs, or specific reg. */
if (regnum == -1)
Index: regcache.c
===================================================================
RCS file: /cvs/src/src/gdb/regcache.c,v
retrieving revision 1.9
diff -c -r1.9 regcache.c
*** regcache.c 2000/08/25 21:03:00 1.9
--- regcache.c 2000/08/30 20:00:04
***************
*** 502,508 ****
/* The register partially overlaps the range being written. */
else
{
! char regbuf[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);
--- 502,508 ----
/* The register partially overlaps the range being written. */
else
{
! char *regbuf = 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: remote.c
===================================================================
RCS file: /cvs/src/src/gdb/remote.c,v
retrieving revision 1.22
diff -c -r1.22 remote.c
*** remote.c 2000/08/24 10:48:22 1.22
--- remote.c 2000/08/30 20:00:05
***************
*** 1238,1244 ****
int i, value = 0;
unsigned char *scan;
! scan = (char *) ref;
scan += 4;
i = 4;
while (i-- > 0)
--- 1238,1244 ----
int i, value = 0;
unsigned char *scan;
! scan = (unsigned char *) ref;
scan += 4;
i = 4;
while (i-- > 0)
***************
*** 1343,1349 ****
while ((pkt < limit) && mask && *pkt) /* packets are terminated with nulls */
{
! pkt = unpack_int (pkt, &tag); /* tag */
pkt = unpack_byte (pkt, &length); /* length */
if (!(tag & mask)) /* tags out of synch with mask */
{
--- 1343,1349 ----
while ((pkt < limit) && mask && *pkt) /* packets are terminated with nulls */
{
! pkt = unpack_int (pkt, (int *)&tag); /* tag */
pkt = unpack_byte (pkt, &length); /* length */
if (!(tag & mask)) /* tags out of synch with mask */
{
***************
*** 1892,1898 ****
sect != 0;
sect = sect->next)
{
! p = (unsigned char *) bfd_get_section_name (abfd, sect);
len = strlen (p);
if (strcmp (p + len - 4, "data") == 0) /* ends in "data" */
if (data_base == 0 ||
--- 1892,1898 ----
sect != 0;
sect = sect->next)
{
! p = (char *) bfd_get_section_name (abfd, sect);
len = strlen (p);
if (strcmp (p + len - 4, "data") == 0) /* ends in "data" */
if (data_base == 0 ||
***************
*** 2619,2625 ****
{
int i;
long regno;
! char regs[MAX_REGISTER_RAW_SIZE];
/* Expedited reply, containing Signal, {regno, reg} repeat */
/* format is: 'Tssn...:r...;n...:r...;n...:r...;#cc', where
--- 2619,2625 ----
{
int i;
long regno;
! char *regs = alloca(MAX_REGISTER_RAW_SIZE);
/* Expedited reply, containing Signal, {regno, reg} repeat */
/* format is: 'Tssn...:r...;n...:r...;n...:r...;#cc', where
***************
*** 2840,2846 ****
{
int i;
long regno;
! char regs[MAX_REGISTER_RAW_SIZE];
/* Expedited reply, containing Signal, {regno, reg} repeat */
/* format is: 'Tssn...:r...;n...:r...;n...:r...;#cc', where
--- 2840,2846 ----
{
int i;
long regno;
! char *regs = alloca(MAX_REGISTER_RAW_SIZE);
/* Expedited reply, containing Signal, {regno, reg} repeat */
/* format is: 'Tssn...:r...;n...:r...;n...:r...;#cc', where
***************
*** 3040,3046 ****
char *buf = alloca (PBUFSIZ);
int i;
char *p;
! char regs[REGISTER_BYTES];
set_thread (inferior_pid, 1);
--- 3040,3046 ----
char *buf = alloca (PBUFSIZ);
int i;
char *p;
! char *regs = alloca(REGISTER_BYTES);
set_thread (inferior_pid, 1);
Index: sol-thread.c
===================================================================
RCS file: /cvs/src/src/gdb/sol-thread.c,v
retrieving revision 1.12
diff -c -r1.12 sol-thread.c
*** sol-thread.c 2000/07/30 01:48:27 1.12
--- sol-thread.c 2000/08/30 20:00:06
***************
*** 682,688 ****
if (regno != -1)
{ /* Not writing all the regs */
/* save new register value */
! char old_value[REGISTER_SIZE];
memcpy (old_value, ®isters[REGISTER_BYTE (regno)], REGISTER_SIZE);
val = p_td_thr_getgregs (&thandle, gregset);
--- 682,688 ----
if (regno != -1)
{ /* Not writing all the regs */
/* save new register value */
! char *old_value = alloca(REGISTER_SIZE);
memcpy (old_value, ®isters[REGISTER_BYTE (regno)], REGISTER_SIZE);
val = p_td_thr_getgregs (&thandle, gregset);
Index: sparc-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sparc-tdep.c,v
retrieving revision 1.7
diff -c -r1.7 sparc-tdep.c
*** sparc-tdep.c 2000/08/10 23:53:45 1.7
--- sparc-tdep.c 2000/08/30 20:00:07
***************
*** 209,215 ****
set up a simulated single-step, we undo our damage. */
void
! sparc_software_single_step (enum target_signal ignore, /* pid, but we don't need it */
int insert_breakpoints_p)
{
branch_type br;
--- 209,215 ----
set up a simulated single-step, we undo our damage. */
void
! sparc_software_single_step (/*enum target_signal*/ uint ignore, /* pid, but we don't need it */
int insert_breakpoints_p)
{
branch_type br;
***************
*** 2899,2905 ****
0xd203a048, 0x40000000, 0xd003a044, 0x01000000,
0x91d02001, 0x01000000
};
! static LONGEST call_dummy_64[] =
{ 0x9de3bec0fd3fa7f7LL, 0xf93fa7eff53fa7e7LL,
0xf13fa7dfed3fa7d7LL, 0xe93fa7cfe53fa7c7LL,
0xe13fa7bfdd3fa7b7LL, 0xd93fa7afd53fa7a7LL,
--- 2899,2905 ----
0xd203a048, 0x40000000, 0xd003a044, 0x01000000,
0x91d02001, 0x01000000
};
! static unsigned LONGEST call_dummy_64[] =
{ 0x9de3bec0fd3fa7f7LL, 0xf93fa7eff53fa7e7LL,
0xf13fa7dfed3fa7d7LL, 0xe93fa7cfe53fa7c7LL,
0xe13fa7bfdd3fa7b7LL, 0xd93fa7afd53fa7a7LL,
Index: valops.c
===================================================================
RCS file: /cvs/src/src/gdb/valops.c,v
retrieving revision 1.24
diff -c -r1.24 valops.c
*** valops.c 2000/08/04 03:17:57 1.24
--- valops.c 2000/08/30 20:00:08
***************
*** 561,567 ****
{
register struct type *type;
register value_ptr val;
! char raw_buffer[MAX_REGISTER_RAW_SIZE];
int use_buffer = 0;
if (!toval->modifiable)
--- 561,567 ----
{
register struct type *type;
register value_ptr val;
! char *raw_buffer = alloca(MAX_REGISTER_RAW_SIZE);
int use_buffer = 0;
if (!toval->modifiable)
***************
*** 1018,1024 ****
push_word (CORE_ADDR sp, ULONGEST word)
{
register int len = REGISTER_SIZE;
! char buffer[MAX_REGISTER_RAW_SIZE];
store_unsigned_integer (buffer, len, word);
if (INNER_THAN (1, 2))
--- 1018,1024 ----
push_word (CORE_ADDR sp, ULONGEST word)
{
register int len = REGISTER_SIZE;
! char *buffer = alloca(MAX_REGISTER_RAW_SIZE);
store_unsigned_integer (buffer, len, word);
if (INNER_THAN (1, 2))
***************
*** 1661,1667 ****
SAVE_DUMMY_FRAME_TOS (sp);
{
! char retbuf[REGISTER_BYTES];
char *name;
struct symbol *symbol;
--- 1661,1667 ----
SAVE_DUMMY_FRAME_TOS (sp);
{
! char *retbuf = alloca(REGISTER_BYTES);
char *name;
struct symbol *symbol;