Hi Pedro, On Feb 18, Pedro Alves wrote:
> I encourage you to try building cvs head, or a recent > snapshot with hp cc so catch other possible tweaks > necessary, as gdb 7.1 is close to branching out. thanks for the hint! ok, so here are some more problems at least FYI, not sure if all of them can and must be fixed ?! with no specific order: ------------------------------------------------------------------------------- SGI IRIX: cc-1028 cc: ERROR File = gdb-CVS-20100222/gdb/varobj.c, Line = 1703 The expression used must have a constant value. varobj_update_result r = {*varp}; ^ using "gcc -pedantic" you'll get at least a warning about this problem: gdb-CVS-20100222/gdb/varobj.c:1703: warning: initializer element is not computable at load time gdb-CVS-20100222/gdb/varobj.c:1711: warning: initializer element is not computable at load time gdb-CVS-20100222/gdb/varobj.c:1741: warning: initializer element is not computable at load time gdb-CVS-20100222/gdb/varobj.c:1818: warning: initializer element is not computable at load time gdb-CVS-20100222/gdb/varobj.c:1828: warning: initializer element is not computable at load time gdb-CVS-20100222/gdb/varobj.c:1855: warning: initializer element is not computable at load time a possible fix for the 1st error would be varobj.c.diff (attached). ------------------------------------------------------------------------------- old bison/yacc: on some older linux I run into this problem: c-exp.y:2238: error: field 'value' has incomplete type these are the distros and bison/byacc versions: suse 9.0 bison 1.75 redhat 9 bison 1.35 centos 5.0 byacc-1.9-29.2.2 the attached patch c-exp.y.diff seems to work both with bison-2.3 and those older versions... ------------------------------------------------------------------------------- Solaris on solaris 5.8 (sparc, Sun C 5.7 2005/01/07) and 5.10 (sparc Sun C 5.8 2005/10/13 and x86 Sun C 5.9 SunOS_i386 Patch 124868-01 2007/07/12) the cc complains about unknown __FUNCTION__ : "gdb-CVS-20100222/bfd/elfxx-sparc.c", line 2944: undefined symbol: __FUNCTION__ and "gdb-CVS-20100222/bfd/elf32-i386.c", line 1406: undefined symbol: __FUNCTION__ "gdb-CVS-20100222/bfd/elf32-i386.c", line 3012: undefined symbol: __FUNCTION__ the short hack in bfd.diff is far from being perfect, just an example how to get it compiling because (a) it should check for C99 and/or solaris (e.g. if __func__ is really available -- looks like a autoconf thingy;) (b) this check/define should be handled elsewhere at one central place as there are more files "affected" : gdb-CVS-20100222 > grep -rl __FUNCTION__ . ./bfd/elfxx-sparc.c ./bfd/bfd-in2.h ./bfd/nlm32-sparc.c ./bfd/elf64-x86-64.c ./bfd/elf32-i386.c ./bfd/elf32-bfin.c ./bfd/bfd-in.h ./sim/cris/traps.c ./gdb/ChangeLog-2004 ./gdb/ChangeLog-2002 ./gdb/ChangeLog-2000 as the ChangeLogs tell that's not really a new problem, IMHO I'd go with ./gdb/ChangeLog-2000 ;-)) ./gdb/ChangeLog-2000: * uw-thread.c: Remove __FUNCTION__ GNUism. ./gdb/ChangeLog-2002: __FUNCTION__. ./gdb/ChangeLog-2002: * gnu-nat.c (do_mach_notify_no_senders): Replace __FUNCTION__ with ./gdb/ChangeLog-2004: * ia64-tdep.c (ia64_find_proc_info_x): Do not use __FUNCTION__. ------------------------------------------------------------------------------- AIX 5.3 just FYI: while gdb 7.0.1 crashes when trying to start a program (typing "gdb a.out" and "r" will SIGSEGV)... gdb 7.1.50.20100222-cvs seems to work, at least running and simple break points work... ------------------------------------------------------------------------------- Harald Koenig -- "I hope to die ___ _____ before I *have* to use Microsoft Word.", 0--,| /OOOOOOO\ Donald E. Knuth, 02-Oct-2001 in Tuebingen. <_/ / /OOOOOOOOOOO\ \ \/OOOOOOOOOOOOOOO\ \ OOOOOOOOOOOOOOOOO|// Harald Koenig \/\/\/\/\/\/\/\/\/ science+computing ag // / \\ \ koe...@science-computing.de ^^^^^ ^^^^^ -- Vorstand/Board of Management: Dr. Bernd Finkbeiner, Dr. Roland Niemeier, Dr. Arno Steitz, Dr. Ingrid Zech Vorsitzender des Aufsichtsrats/ Chairman of the Supervisory Board: Michel Lepert Sitz/Registered Office: Tuebingen Registergericht/Registration Court: Stuttgart Registernummer/Commercial Register No.: HRB 382196
Index: varobj.c =================================================================== RCS file: /cvs/src/src/gdb/varobj.c,v retrieving revision 1.154 diff -u -r1.154 varobj.c --- varobj.c 20 Jan 2010 06:36:38 -0000 1.154 +++ varobj.c 23 Feb 2010 14:15:10 -0000 @@ -1700,7 +1700,8 @@ if (!(*varp)->root->is_valid) { - varobj_update_result r = {*varp}; + varobj_update_result r = {0}; + r.varobj = *varp; r.status = VAROBJ_INVALID; VEC_safe_push (varobj_update_result, result, &r); return result; @@ -1708,7 +1709,8 @@ if ((*varp)->root->rootvar == *varp) { - varobj_update_result r = {*varp}; + varobj_update_result r = {0}; + r.varobj = varp; r.status = VAROBJ_IN_SCOPE; /* Update the root variable. value_of_root can return NULL @@ -1738,7 +1740,8 @@ } else { - varobj_update_result r = {*varp}; + varobj_update_result r = {0}; + r.varobj = varp; VEC_safe_push (varobj_update_result, stack, &r); } @@ -1815,7 +1818,8 @@ for (i = VEC_length (varobj_p, changed) - 1; i >= 0; --i) { varobj_p tmp = VEC_index (varobj_p, changed, i); - varobj_update_result r = {tmp}; + varobj_update_result r = {0}; + r.varobj = tmp; r.changed = 1; r.value_installed = 1; VEC_safe_push (varobj_update_result, stack, &r); @@ -1825,7 +1829,8 @@ varobj_p tmp = VEC_index (varobj_p, unchanged, i); if (!tmp->frozen) { - varobj_update_result r = {tmp}; + varobj_update_result r = {0}; + r.varobj = tmp; r.value_installed = 1; VEC_safe_push (varobj_update_result, stack, &r); } @@ -1852,7 +1857,8 @@ /* Child may be NULL if explicitly deleted by -var-delete. */ if (c != NULL && !c->frozen) { - varobj_update_result r = {c}; + varobj_update_result r = {0}; + r.varobj = c; VEC_safe_push (varobj_update_result, stack, &r); } }
Index: c-exp.y =================================================================== RCS file: /cvs/src/src/gdb/c-exp.y,v retrieving revision 1.71 diff -u -r1.71 c-exp.y --- c-exp.y 19 Feb 2010 20:22:03 -0000 1.71 +++ c-exp.y 23 Feb 2010 14:42:29 -0000 @@ -2295,7 +2295,7 @@ typedef struct { int token; - union YYSTYPE value; + YYSTYPE value; } token_and_value; DEF_VEC_O (token_and_value);
_______________________________________________ bug-gdb mailing list bug-gdb@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gdb