From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32593 invoked by alias); 14 Jul 2008 23:45:40 -0000 Received: (qmail 32579 invoked by uid 22791); 14 Jul 2008 23:45:38 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 14 Jul 2008 23:45:20 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id m6ENjI0T027174 for ; Mon, 14 Jul 2008 19:45:18 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [10.11.255.20]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m6ENjIae024945 for ; Mon, 14 Jul 2008 19:45:18 -0400 Received: from lindt.uglyboxes.com (sebastian-int.corp.redhat.com [172.16.52.221]) by pobox.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m6ENjF4Q005687 for ; Mon, 14 Jul 2008 19:45:16 -0400 Message-ID: <487BE50B.8050502@redhat.com> Date: Mon, 14 Jul 2008 23:45:00 -0000 From: Keith Seitz User-Agent: Thunderbird 2.0.0.14 (X11/20080421) MIME-Version: 1.0 To: insight Subject: [PATCH] Fix build Content-Type: multipart/mixed; boundary="------------030907090301050204080800" X-IsSubscribed: yes Mailing-List: contact insight-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: insight-owner@sourceware.org X-SW-Source: 2008-q3/txt/msg00007.txt.bz2 This is a multi-part message in MIME format. --------------030907090301050204080800 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1348 Hi, I've committed the attached patch, which should fix the recent build woes. If there are any issues, please let me know via the list. Keith ChangeLog 2008-07-14 Keith Seitz * generic/gdbtk-stack.c (gdb_block_args): Remove deprecated values LOC_LOCAL_ARG, LOC_COMPUTED_ARG, LOC_REGPARM, LOC_BASEARG_ARG, and LOC_BASEARG. (gdb_get_blocks): Likewise. (gdb_get_vars_command): Likewise. Fix type-punned pointer error introduced on 03-07. * generic/gdbtk-cmds.c (gdbtk_load_asm): Use paddress instead of deprecated_print_address_numeric. (gdb_stop): Update use of target_stop. * generic/gdbtk.h (gdbtk_get_ptid): Declare new function. * generic/gdbtk-hooks.c (gdbtk_wait): Save inferior's ptid. (gdbtk_get_ptid): Define new function. * generic/gdbtk-varobj.c (variable_update): Update for recent varobj_update API change. * generic/gdbtk-wrapper.h (GDB_varobj_update): Likewise. * generic/gdbtk-wrapper.c (GDB_varobj_update): Likewise. (wrap_varobj_update): Likewise. * library/targetselection.itb (init_target_db): Initialize preferences here instead of ... (_init): ... here. (_init_prefs): Define gdb/load/default-portname, too. --------------030907090301050204080800 Content-Type: text/x-patch; name="mega-build-fix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="mega-build-fix.patch" Content-length: 13501 Index: generic/gdbtk-cmds.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-cmds.c,v retrieving revision 1.100 diff -u -p -r1.100 gdbtk-cmds.c --- generic/gdbtk-cmds.c 12 May 2008 07:24:54 -0000 1.100 +++ generic/gdbtk-cmds.c 14 Jul 2008 23:42:50 -0000 @@ -42,6 +42,7 @@ #include "varobj.h" #include "exceptions.h" #include "language.h" +#include "target.h" /* tcl header files includes varargs.h unless HAS_STDARG is defined, but gdb uses stdarg.h, so make sure HAS_STDARG is defined. */ @@ -567,8 +568,8 @@ gdb_stop (ClientData clientData, Tcl_Int } else { - if (target_stop != target_ignore) - target_stop (); + if (target_ignore != (void (*) (void)) current_target.to_stop) + target_stop (gdbtk_get_ptid ()); else quit_flag = 1; /* hope something sees this */ } @@ -1889,7 +1890,7 @@ gdbtk_load_asm (ClientData clientData, C for (i = 0; i < 3; i++) Tcl_SetObjLength (client_data->result_obj[i], 0); - deprecated_print_address_numeric (pc, 1, gdb_stdout); + fputs_filtered (paddress (pc), gdb_stdout); gdb_flush (gdb_stdout); result_ptr->obj_ptr = client_data->result_obj[1]; Index: generic/gdbtk-hooks.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-hooks.c,v retrieving revision 1.42 diff -u -p -r1.42 gdbtk-hooks.c --- generic/gdbtk-hooks.c 3 Mar 2008 23:25:03 -0000 1.42 +++ generic/gdbtk-hooks.c 14 Jul 2008 23:42:50 -0000 @@ -1,6 +1,6 @@ /* Startup code for Insight. - Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 200, 2002, 2003, 2004 + Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 200, 2002, 2003, 2004, 2008 Free Software Foundation, Inc. Written by Stu Grossman of Cygnus Support. @@ -111,6 +111,8 @@ long gdbtk_read (struct ui_file *, char void gdbtk_fputs (const char *, struct ui_file *); static int gdbtk_load_hash (const char *, unsigned long); +static ptid_t gdbtk_ptid; + /* * gdbtk_add_hooks - add all the hooks to gdb. This will get called by the * startup code to fill in the hooks needed by core gdb. @@ -665,6 +667,7 @@ gdbtk_wait (ptid_t ptid, struct target_w gdbtk_start_timer (); ptid = target_wait (ptid, ourstatus); gdbtk_stop_timer (); + gdbtk_ptid = ptid; return ptid; } @@ -836,3 +839,9 @@ gdbtk_architecture_changed (void) { Tcl_Eval (gdbtk_interp, "gdbtk_tcl_architecture_changed"); } + +ptid_t +gdbtk_get_ptid (void) +{ + return gdbtk_ptid; +} Index: generic/gdbtk-stack.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-stack.c,v retrieving revision 1.27 diff -u -p -r1.27 gdbtk-stack.c --- generic/gdbtk-stack.c 7 Mar 2008 08:03:19 -0000 1.27 +++ generic/gdbtk-stack.c 14 Jul 2008 23:42:51 -0000 @@ -1,5 +1,5 @@ /* Tcl/Tk command definitions for Insight - Stack. - Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2008 Free Software Foundation, Inc. This file is part of GDB. @@ -116,16 +116,11 @@ gdb_block_vars (ClientData clientData, T { case LOC_ARG: /* argument */ case LOC_REF_ARG: /* reference arg */ - case LOC_REGPARM: /* register arg */ case LOC_REGPARM_ADDR: /* indirect register arg */ - case LOC_LOCAL_ARG: /* stack arg */ - case LOC_BASEREG_ARG: /* basereg arg */ case LOC_LOCAL: /* stack local */ - case LOC_BASEREG: /* basereg local */ case LOC_STATIC: /* static */ case LOC_REGISTER: /* register */ case LOC_COMPUTED: /* computed location */ - case LOC_COMPUTED_ARG: /* computed location arg */ Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, Tcl_NewStringObj (DEPRECATED_SYMBOL_NAME (sym), -1)); @@ -196,14 +191,9 @@ gdb_get_blocks (ClientData clientData, T case LOC_ARG: /* argument */ case LOC_REF_ARG: /* reference arg */ - case LOC_REGPARM: /* register arg */ case LOC_REGPARM_ADDR: /* indirect register arg */ - case LOC_LOCAL_ARG: /* stack arg */ - case LOC_BASEREG_ARG: /* basereg arg */ - case LOC_COMPUTED_ARG: /* computed location arg */ case LOC_LOCAL: /* stack local */ - case LOC_BASEREG: /* basereg local */ case LOC_STATIC: /* static */ case LOC_REGISTER: /* register */ case LOC_COMPUTED: /* computed location */ @@ -295,7 +285,7 @@ gdb_get_vars_command (ClientData clientD return TCL_ERROR; } - arguments = *(int*) clientData; + arguments = *(int*) &clientData; /* Initialize the result pointer to an empty list. */ @@ -344,17 +334,12 @@ gdb_get_vars_command (ClientData clientD break; case LOC_ARG: /* argument */ case LOC_REF_ARG: /* reference arg */ - case LOC_REGPARM: /* register arg */ case LOC_REGPARM_ADDR: /* indirect register arg */ - case LOC_LOCAL_ARG: /* stack arg */ - case LOC_BASEREG_ARG: /* basereg arg */ - case LOC_COMPUTED_ARG: /* computed location arg */ if (arguments) Tcl_ListObjAppendElement (interp, result_ptr->obj_ptr, Tcl_NewStringObj (DEPRECATED_SYMBOL_NAME (sym), -1)); break; case LOC_LOCAL: /* stack local */ - case LOC_BASEREG: /* basereg local */ case LOC_STATIC: /* static */ case LOC_REGISTER: /* register */ case LOC_COMPUTED: /* computed location */ Index: generic/gdbtk-varobj.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-varobj.c,v retrieving revision 1.21 diff -u -p -r1.21 gdbtk-varobj.c --- generic/gdbtk-varobj.c 5 Feb 2008 14:07:06 -0000 1.21 +++ generic/gdbtk-varobj.c 14 Jul 2008 23:42:51 -0000 @@ -440,28 +440,34 @@ variable_children (Tcl_Interp *interp, s static Tcl_Obj * variable_update (Tcl_Interp *interp, struct varobj **var) { + int i; Tcl_Obj *changed; - struct varobj **changelist; - struct varobj **vc; - int result; - - /* varobj_update() throws an error for a non-root variable - and otherwise it returns a value < 0 if the variable is - not in scope, not valid anymore or has changed type. */ - if (GDB_varobj_update (var, &changelist, 1, &result) != GDB_OK || result < 0) + VEC (varobj_update_result) *changes; + varobj_update_result *r; + + if (GDB_varobj_update (var, 1, &changes) != GDB_OK) return Tcl_NewStringObj ("-1", -1); - changed = Tcl_NewListObj (0, NULL); - vc = changelist; - while (*vc != NULL) + changed = Tcl_NewListObj (0, NULL); + for (i = 0; VEC_iterate (varobj_update_result, changes, i, r); ++i) { - /* Add changed variable object to result list */ - Tcl_ListObjAppendElement (NULL, changed, - Tcl_NewStringObj (varobj_get_objname (*vc), -1)); - vc++; + switch (r->status) + { + case VAROBJ_IN_SCOPE: + { + Tcl_Obj *var + = Tcl_NewStringObj (varobj_get_objname (r->varobj), -1); + Tcl_ListObjAppendElement (NULL, changed, var); + } + break; + + case VAROBJ_NOT_IN_SCOPE: + case VAROBJ_INVALID: + /* These need to be (re-)implemented in the UI */ + break; + } } - xfree (changelist); return changed; } Index: generic/gdbtk-wrapper.c =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-wrapper.c,v retrieving revision 1.16 diff -u -p -r1.16 gdbtk-wrapper.c --- generic/gdbtk-wrapper.c 12 May 2008 07:24:54 -0000 1.16 +++ generic/gdbtk-wrapper.c 14 Jul 2008 23:42:52 -0000 @@ -1,5 +1,5 @@ /* longjmp-free interface between gdb and gdbtk. - Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2008 Free Software Foundation, Inc. This file is part of GDB. @@ -83,9 +83,8 @@ gdb_result GDB_find_relative_frame (stru gdb_result GDB_get_current_frame (struct frame_info **result); -gdb_result GDB_varobj_update (struct varobj **varp, - struct varobj ***changelist, int explicit, - int *result); +gdb_result GDB_varobj_update (struct varobj **varp, int explicit, + VEC (varobj_update_result) **changes); /* * Private functions for this file @@ -730,21 +729,20 @@ wrap_get_current_frame (char *opaque_arg } gdb_result -GDB_varobj_update (struct varobj **varp, struct varobj ***changelist, - int explicit, int *result) +GDB_varobj_update (struct varobj **varp, int explicit, + VEC (varobj_update_result) **changes) { struct gdb_wrapper_arguments args; gdb_result r; args.args[0].ptr = varp; - args.args[1].ptr = changelist; - args.args[2].integer = explicit; + args.args[1].integer = explicit; r = call_wrapped_function ((catch_errors_ftype *) wrap_varobj_update, &args); if (r != GDB_OK) return r; - *result = args.result.integer; + *changes = args.result.ptr; return GDB_OK; } @@ -753,9 +751,7 @@ static int wrap_varobj_update (char *opa struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg; struct varobj **varp = (struct varobj **) (*args)->args[0].ptr; - struct varobj ***changelist = (struct varobj ***) (*args)->args[1].ptr; - int explicit = (*args)->args[2].integer; - - (*args)->result.integer = varobj_update (varp, changelist, explicit); + int explicit = (*args)->args[1].integer; + (*args)->result.ptr = varobj_update (varp, explicit); return 1; } Index: generic/gdbtk-wrapper.h =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-wrapper.h,v retrieving revision 1.10 diff -u -p -r1.10 gdbtk-wrapper.h --- generic/gdbtk-wrapper.h 7 Mar 2008 08:03:19 -0000 1.10 +++ generic/gdbtk-wrapper.h 14 Jul 2008 23:42:52 -0000 @@ -1,5 +1,5 @@ /* longjmp-free interface between gdb and gdbtk. - Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2008 Free Software Foundation, Inc. This file is part of GDB. It contains routines to safely call common gdb functions without the fear of longjmp'ing. @@ -21,6 +21,8 @@ Boston, MA 02110-1301, USA. */ #ifndef GDBTK_WRAPPER_H #define GDBTK_WRAPPER_H +#include "vec.h" + /* Use this struct used to pass arguments to wrapper routines. We assume (arbitrarily) that no gdb function takes more than ten arguments. */ struct gdb_wrapper_arguments { @@ -88,8 +90,7 @@ extern gdb_result GDB_find_relative_fram int *start, struct frame_info **result); extern gdb_result GDB_get_current_frame (struct frame_info **result); -extern gdb_result GDB_varobj_update (struct varobj **varp, - struct varobj ***changelist, int explicit, - int *result); +extern gdb_result GDB_varobj_update (struct varobj **varp, int explicit, + VEC (varobj_update_result) **changes); #endif /* GDBTK_WRAPPER_H */ Index: generic/gdbtk.h =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk.h,v retrieving revision 1.11 diff -u -p -r1.11 gdbtk.h --- generic/gdbtk.h 23 Dec 2005 18:23:16 -0000 1.11 +++ generic/gdbtk.h 14 Jul 2008 23:42:52 -0000 @@ -1,5 +1,5 @@ /* Tcl/Tk interface routines header file. - Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2003 + Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2003, 2008 Free Software Foundation, Inc. Written by Stu Grossman of Cygnus Support. @@ -98,6 +98,7 @@ typedef struct gdbtk_result gdbtk_result; struct target_ops; +struct ptid_t; /* These defines give the allowed values for the gdbtk_result.flags field. */ @@ -161,6 +162,7 @@ extern void gdbtk_fputs (const char *, s extern struct ui_file *gdbtk_fileopen (void); extern struct ui_file *gdbtk_fileopenin (void); extern int gdbtk_disable_fputs; +extern ptid_t gdbtk_get_ptid (void); #ifdef _WIN32 extern void close_bfds (); Index: library/targetselection.itb =================================================================== RCS file: /cvs/src/src/gdb/gdbtk/library/targetselection.itb,v retrieving revision 1.22 diff -u -p -r1.22 targetselection.itb --- library/targetselection.itb 3 Mar 2008 23:25:03 -0000 1.22 +++ library/targetselection.itb 14 Jul 2008 23:42:53 -0000 @@ -44,6 +44,11 @@ itcl::body TargetSelection::init_target_ } set db_inited 1 + # We really need to have the preferences defined, too, + # otherwise set_target and company won't work properly + # unless the user has first opened a TargetSelection dialog. + _init_prefs + # Target Database # Set the following members: # TARGET,pretty-name: Name to display to user @@ -323,6 +328,7 @@ itcl::body TargetSelection::_init_prefs pref define gdb/load/default-port [default_port] pref define gdb/load/default-hostname "" pref define gdb/load/default-after_attaching {} + pref define gdb/load/default-portname 32767 } itcl::body TargetSelection::_init_target {} { @@ -371,7 +377,6 @@ itcl::body TargetSelection::_init {} { set trace_inited 1 init_target_db ;# initialize database - _init_prefs ;# initialize load prefs _init_target ;# initialize target prefs set_saved --------------030907090301050204080800--