From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31165 invoked by alias); 15 Mar 2004 21:13:29 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 30719 invoked from network); 15 Mar 2004 21:13:26 -0000 Received: from unknown (HELO localhost.redhat.com) (66.30.197.194) by sources.redhat.com with SMTP; 15 Mar 2004 21:13:26 -0000 Received: from gnu.org (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id A6D212B92; Mon, 15 Mar 2004 16:13:25 -0500 (EST) Message-ID: <40561C75.5000908@gnu.org> Date: Fri, 19 Mar 2004 00:09:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-GB; rv:1.4.1) Gecko/20040217 MIME-Version: 1.0 To: Eli Zaretskii Cc: gdb-patches@sources.redhat.com, kettenis@chello.nl Subject: Re: [patch/rfc] Separate gdbarch_data_register_pre_init References: <404CC940.70805@gnu.org> <4055E603.3040904@gnu.org> <9003-Mon15Mar2004215253+0200-eliz@elta.co.il> In-Reply-To: <9003-Mon15Mar2004215253+0200-eliz@elta.co.il> Content-Type: multipart/mixed; boundary="------------050609020702070801040102" X-SW-Source: 2004-03/txt/msg00334.txt.bz2 Message-ID: <20040319000900.JzH4Xf7hEmeYB5znkH9Z4JXX9wlOu4kSLaWXq2qx32Q@z> This is a multi-part message in MIME format. --------------050609020702070801040102 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1773 >>> Date: Mon, 15 Mar 2004 12:21:07 -0500 >>> From: Andrew Cagney >>> >>> How does the doco part of this change look? > > > Looks okay to me, except for the following small gotchas: > > >>> ! @var{post_init} is used to obtain an initial value for a >>> ! per-architecture data-pointer @emph{after}. Since @var{post_init} is >>> ! always called after architecture creation, it both receives the fully >>> ! initialized architecture and is free to call modules that use >>> ! per-architecture data (care should be taken to avoid cycles in the >>> ! call graph). >>> ! @end deftypefun > > > This sounds like important notes, but they are worded too vaguely, > IMHO. A question that popped up in my mind when I read that was: what > cycles should I avoid in the call graph, and how? > > Perhaps an example would help drive these points home. I've tried to make the problem more explict. >>> ! current value of the per-architecture data-pointer. If the data >>> ! pointer is @code{NULL}, it is first initialize by calling the > > ^^^^^^^^^^^^^^^^^^^^^^ > A typo: it should be "initialized". yes. >>> ! The examples below assuming the following definitions: > > ^^^^^^^^ > "The examples ... assume ..." yes >>> ! A module can extend the architecture vector, adding additional >>> ! per-architecture attributes, using the @var{pre_init} method. These >>> ! attribute being set by the architecture's @var{gdbarch_init} method >>> ! during architecture creation. > > > "These attributes are set by the architecture's @var{gdbarch_init} > method ...". > > Btw, what ``attributes'' are those? The text doesn't explain that. I've re-worded it so that it doesn't use "attribute". ok? Andrew --------------050609020702070801040102 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" Content-length: 24511 2004-03-15 Andrew Cagney * gdbarch.sh (gdbarch_data_pre_init_fytpe) (gdbarch_data_register_pre_init, gdbarch_data_post_init_fytpe) (gdbarch_data_register_post_init): Replace gdbarch_data_init_ftype and register_gdbarch_data. (deprecated_set_gdbarch_data): Rename set_gdbarch_data. (struct gdbarch_data): Replace "init" by "pre_init" and "post_init". * gdbarch.h, gdbarch.c: Re-generate. * dwarf2-frame.c (dwarf2_frame_init): Replace "gdbarch" paramter with"obstack", use OBSTACK_ZALLOC. (dwarf2_frame_ops): Delete. (dwarf2_frame_set_init_reg): Use gdbarch_data. (dwarf2_frame_init_reg): Use gdbarch_data. (_initialize_dwarf2_frame): Use gdbarch_data_register_pre_init. * solib-svr4.c (set_solib_svr4_fetch_link_map_offsets) (_initialize_svr4_solib): Update. * user-regs.c (_initialize_user_regs): Update. * reggroups.c (_initialize_reggroup): Update. * regcache.c (_initialize_regcache): Update. * mips-linux-tdep.c (_initialize_mips_linux_tdep): Update. * libunwind-frame.c (_initialize_libunwind_frame): Update. * gnu-v3-abi.c (init_gnuv3_ops): Update. * frame-unwind.c (_initialize_frame_unwind): Update. * frame-base.c (_initialize_frame_base): Update. * user-regs.c (user_reg_add): Update. * reggroups.c (reggroup_add): Update. * mips-linux-tdep.c (set_mips_linux_register_addr): Update. * libunwind-frame.c (libunwind_frame_set_descr): Update. * frame-unwind.c (frame_unwind_append_sniffer): Update. * frame-base.c (frame_base_table): Update. * remote.c (_initialize_remote): Update. * gdb_obstack.h (OBSTACK_ZALLOC, OBSTACK_CALLOC): Define. Index: dwarf2-frame.c =================================================================== RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v retrieving revision 1.31 diff -u -r1.31 dwarf2-frame.c --- dwarf2-frame.c 16 Feb 2004 20:32:01 -0000 1.31 +++ dwarf2-frame.c 15 Mar 2004 20:36:39 -0000 @@ -509,29 +509,15 @@ /* Return a default for the architecture-specific operations. */ static void * -dwarf2_frame_init (struct gdbarch *gdbarch) +dwarf2_frame_init (struct obstack *obstack) { struct dwarf2_frame_ops *ops; - ops = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct dwarf2_frame_ops); + ops = OBSTACK_ZALLOC (obstack, struct dwarf2_frame_ops); ops->init_reg = dwarf2_frame_default_init_reg; return ops; } -static struct dwarf2_frame_ops * -dwarf2_frame_ops (struct gdbarch *gdbarch) -{ - struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data); - if (ops == NULL) - { - /* ULGH, called during architecture initialization. Patch - things up. */ - ops = dwarf2_frame_init (gdbarch); - set_gdbarch_data (gdbarch, dwarf2_frame_data, ops); - } - return ops; -} - /* Set the architecture-specific register state initialization function for GDBARCH to INIT_REG. */ @@ -540,9 +526,8 @@ void (*init_reg) (struct gdbarch *, int, struct dwarf2_frame_state_reg *)) { - struct dwarf2_frame_ops *ops; + struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data); - ops = dwarf2_frame_ops (gdbarch); ops->init_reg = init_reg; } @@ -552,9 +537,8 @@ dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg) { - struct dwarf2_frame_ops *ops; + struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data); - ops = dwarf2_frame_ops (gdbarch); ops->init_reg (gdbarch, regnum, reg); } @@ -1608,6 +1592,6 @@ void _initialize_dwarf2_frame (void) { - dwarf2_frame_data = register_gdbarch_data (dwarf2_frame_init); + dwarf2_frame_data = gdbarch_data_register_pre_init (dwarf2_frame_init); dwarf2_frame_objfile_data = register_objfile_data (); } Index: frame-base.c =================================================================== RCS file: /cvs/src/src/gdb/frame-base.c,v retrieving revision 1.8 diff -u -r1.8 frame-base.c --- frame-base.c 4 Aug 2003 22:24:44 -0000 1.8 +++ frame-base.c 15 Mar 2004 20:36:39 -0000 @@ -92,7 +92,7 @@ /* ULGH, called during architecture initialization. Patch things up. */ table = frame_base_init (gdbarch); - set_gdbarch_data (gdbarch, frame_base_data, table); + deprecated_set_gdbarch_data (gdbarch, frame_base_data, table); } return table; } @@ -146,5 +146,5 @@ void _initialize_frame_base (void) { - frame_base_data = register_gdbarch_data (frame_base_init); + frame_base_data = gdbarch_data_register_post_init (frame_base_init); } Index: frame-unwind.c =================================================================== RCS file: /cvs/src/src/gdb/frame-unwind.c,v retrieving revision 1.8 diff -u -r1.8 frame-unwind.c --- frame-unwind.c 22 Feb 2004 17:08:42 -0000 1.8 +++ frame-unwind.c 15 Mar 2004 20:36:39 -0000 @@ -63,7 +63,7 @@ /* ULGH, called during architecture initialization. Patch things up. */ table = frame_unwind_init (gdbarch); - set_gdbarch_data (gdbarch, frame_unwind_data, table); + deprecated_set_gdbarch_data (gdbarch, frame_unwind_data, table); } append_predicate (table, sniffer); } @@ -95,5 +95,5 @@ void _initialize_frame_unwind (void) { - frame_unwind_data = register_gdbarch_data (frame_unwind_init); + frame_unwind_data = gdbarch_data_register_post_init (frame_unwind_init); } Index: gdb_obstack.h =================================================================== RCS file: /cvs/src/src/gdb/gdb_obstack.h,v retrieving revision 1.2 diff -u -r1.2 gdb_obstack.h --- gdb_obstack.h 9 Feb 2004 23:50:55 -0000 1.2 +++ gdb_obstack.h 15 Mar 2004 20:36:39 -0000 @@ -24,6 +24,12 @@ #include "obstack.h" +/* Utility macros - wrap obstack alloc into something more robust. */ + +#define OBSTACK_ZALLOC(OBSTACK,TYPE) (memset (obstack_alloc ((OBSTACK), sizeof (TYPE)), 0, sizeof (TYPE))) + +#define OBSTACK_CALLOC(OBSTACK,NUMBER,TYPE) (memset (obstack_alloc ((OBSTACK), (NUMBER) * sizeof (TYPE)), 0, (NUMBER) * sizeof (TYPE))) + /* Unless explicitly specified, GDB obstacks always use xmalloc() and xfree(). */ /* Note: ezannoni 2004-02-09: One could also specify the allocation Index: gdbarch.c =================================================================== RCS file: /cvs/src/src/gdb/gdbarch.c,v retrieving revision 1.275 diff -u -r1.275 gdbarch.c --- gdbarch.c 16 Feb 2004 21:49:21 -0000 1.275 +++ gdbarch.c 15 Mar 2004 20:36:40 -0000 @@ -5382,7 +5382,8 @@ { unsigned index; int init_p; - gdbarch_data_init_ftype *init; + gdbarch_data_pre_init_ftype *pre_init; + gdbarch_data_post_init_ftype *post_init; }; struct gdbarch_data_registration @@ -5402,8 +5403,9 @@ 0, NULL, }; -struct gdbarch_data * -register_gdbarch_data (gdbarch_data_init_ftype *init) +static struct gdbarch_data * +gdbarch_data_register (gdbarch_data_pre_init_ftype *pre_init, + gdbarch_data_post_init_ftype *post_init) { struct gdbarch_data_registration **curr; /* Append the new registraration. */ @@ -5414,11 +5416,23 @@ (*curr)->next = NULL; (*curr)->data = XMALLOC (struct gdbarch_data); (*curr)->data->index = gdbarch_data_registry.nr++; - (*curr)->data->init = init; + (*curr)->data->pre_init = pre_init; + (*curr)->data->post_init = post_init; (*curr)->data->init_p = 1; return (*curr)->data; } +struct gdbarch_data * +gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *pre_init) +{ + return gdbarch_data_register (pre_init, NULL); +} + +struct gdbarch_data * +gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *post_init) +{ + return gdbarch_data_register (NULL, post_init); +} /* Create/delete the gdbarch data vector. */ @@ -5434,12 +5448,13 @@ data-pointer. */ void -set_gdbarch_data (struct gdbarch *gdbarch, - struct gdbarch_data *data, - void *pointer) +deprecated_set_gdbarch_data (struct gdbarch *gdbarch, + struct gdbarch_data *data, + void *pointer) { gdb_assert (data->index < gdbarch->nr_data); gdb_assert (gdbarch->data[data->index] == NULL); + gdb_assert (data->pre_init == NULL); gdbarch->data[data->index] = pointer; } @@ -5450,18 +5465,33 @@ gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data) { gdb_assert (data->index < gdbarch->nr_data); - /* The data-pointer isn't initialized, call init() to get a value but - only if the architecture initializaiton has completed. Otherwise - punt - hope that the caller knows what they are doing. */ - if (gdbarch->data[data->index] == NULL - && gdbarch->initialized_p) + if (gdbarch->data[data->index] == NULL) { - /* Be careful to detect an initialization cycle. */ - gdb_assert (data->init_p); - data->init_p = 0; - gdb_assert (data->init != NULL); - gdbarch->data[data->index] = data->init (gdbarch); - data->init_p = 1; + /* The data-pointer isn't initialized, call init() to get a + value. */ + if (data->pre_init != NULL) + /* Mid architecture creation: pass just the obstack, and not + the entire architecture, as that way it isn't possible for + pre-init code to refer to undefined architecture + fields. */ + gdbarch->data[data->index] = data->pre_init (gdbarch->obstack); + else if (gdbarch->initialized_p + && data->post_init != NULL) + /* Post architecture creation: pass the entire architecture + (as all fields are valid), but be careful to also detect + recursive references. */ + { + gdb_assert (data->init_p); + data->init_p = 0; + gdbarch->data[data->index] = data->post_init (gdbarch); + data->init_p = 1; + } + else + /* The architecture initialization hasn't completed - punt - + hope that the caller knows what they are doing. Once + deprecated_set_gdbarch_data has been initialized, this can be + changed to an internal error. */ + return NULL; gdb_assert (gdbarch->data[data->index] != NULL); } return gdbarch->data[data->index]; Index: gdbarch.h =================================================================== RCS file: /cvs/src/src/gdb/gdbarch.h,v retrieving revision 1.238 diff -u -r1.238 gdbarch.h --- gdbarch.h 16 Feb 2004 21:49:21 -0000 1.238 +++ gdbarch.h 15 Mar 2004 20:36:41 -0000 @@ -48,6 +48,7 @@ struct regset; struct disassemble_info; struct target_ops; +struct obstack; extern struct gdbarch *current_gdbarch; @@ -2517,10 +2518,6 @@ for the reserved data-pointer is returned. That identifer should be saved in a local static variable. - The per-architecture data-pointer is either initialized explicitly - (set_gdbarch_data()) or implicitly (by INIT() via a call to - gdbarch_data()). - Memory for the per-architecture data shall be allocated using gdbarch_obstack_zalloc. That memory will be deleted when the corresponding architecture object is deleted. @@ -2534,11 +2531,13 @@ struct gdbarch_data; -typedef void *(gdbarch_data_init_ftype) (struct gdbarch *gdbarch); -extern struct gdbarch_data *register_gdbarch_data (gdbarch_data_init_ftype *init); -extern void set_gdbarch_data (struct gdbarch *gdbarch, - struct gdbarch_data *data, - void *pointer); +typedef void *(gdbarch_data_pre_init_ftype) (struct obstack *obstack); +extern struct gdbarch_data *gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *init); +typedef void *(gdbarch_data_post_init_ftype) (struct gdbarch *gdbarch); +extern struct gdbarch_data *gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *init); +extern void deprecated_set_gdbarch_data (struct gdbarch *gdbarch, + struct gdbarch_data *data, + void *pointer); extern void *gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *); @@ -2554,7 +2553,7 @@ Memory regions are swapped / initialized in the order that they are registered. NULL DATA and/or INIT values can be specified. - New code should use register_gdbarch_data(). */ + New code should use gdbarch_data_register_*(). */ typedef void (gdbarch_swap_ftype) (void); extern void deprecated_register_gdbarch_swap (void *data, unsigned long size, gdbarch_swap_ftype *init); Index: gdbarch.sh =================================================================== RCS file: /cvs/src/src/gdb/gdbarch.sh,v retrieving revision 1.301 diff -u -r1.301 gdbarch.sh --- gdbarch.sh 16 Feb 2004 21:49:21 -0000 1.301 +++ gdbarch.sh 15 Mar 2004 20:36:41 -0000 @@ -890,6 +890,7 @@ struct regset; struct disassemble_info; struct target_ops; +struct obstack; extern struct gdbarch *current_gdbarch; @@ -1201,10 +1202,6 @@ for the reserved data-pointer is returned. That identifer should be saved in a local static variable. - The per-architecture data-pointer is either initialized explicitly - (set_gdbarch_data()) or implicitly (by INIT() via a call to - gdbarch_data()). - Memory for the per-architecture data shall be allocated using gdbarch_obstack_zalloc. That memory will be deleted when the corresponding architecture object is deleted. @@ -1218,11 +1215,13 @@ struct gdbarch_data; -typedef void *(gdbarch_data_init_ftype) (struct gdbarch *gdbarch); -extern struct gdbarch_data *register_gdbarch_data (gdbarch_data_init_ftype *init); -extern void set_gdbarch_data (struct gdbarch *gdbarch, - struct gdbarch_data *data, - void *pointer); +typedef void *(gdbarch_data_pre_init_ftype) (struct obstack *obstack); +extern struct gdbarch_data *gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *init); +typedef void *(gdbarch_data_post_init_ftype) (struct gdbarch *gdbarch); +extern struct gdbarch_data *gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *init); +extern void deprecated_set_gdbarch_data (struct gdbarch *gdbarch, + struct gdbarch_data *data, + void *pointer); extern void *gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *); @@ -1238,7 +1237,7 @@ Memory regions are swapped / initialized in the order that they are registered. NULL DATA and/or INIT values can be specified. - New code should use register_gdbarch_data(). */ + New code should use gdbarch_data_register_*(). */ typedef void (gdbarch_swap_ftype) (void); extern void deprecated_register_gdbarch_swap (void *data, unsigned long size, gdbarch_swap_ftype *init); @@ -1811,7 +1810,8 @@ { unsigned index; int init_p; - gdbarch_data_init_ftype *init; + gdbarch_data_pre_init_ftype *pre_init; + gdbarch_data_post_init_ftype *post_init; }; struct gdbarch_data_registration @@ -1831,8 +1831,9 @@ 0, NULL, }; -struct gdbarch_data * -register_gdbarch_data (gdbarch_data_init_ftype *init) +static struct gdbarch_data * +gdbarch_data_register (gdbarch_data_pre_init_ftype *pre_init, + gdbarch_data_post_init_ftype *post_init) { struct gdbarch_data_registration **curr; /* Append the new registraration. */ @@ -1843,11 +1844,23 @@ (*curr)->next = NULL; (*curr)->data = XMALLOC (struct gdbarch_data); (*curr)->data->index = gdbarch_data_registry.nr++; - (*curr)->data->init = init; + (*curr)->data->pre_init = pre_init; + (*curr)->data->post_init = post_init; (*curr)->data->init_p = 1; return (*curr)->data; } +struct gdbarch_data * +gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *pre_init) +{ + return gdbarch_data_register (pre_init, NULL); +} + +struct gdbarch_data * +gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *post_init) +{ + return gdbarch_data_register (NULL, post_init); +} /* Create/delete the gdbarch data vector. */ @@ -1863,12 +1876,13 @@ data-pointer. */ void -set_gdbarch_data (struct gdbarch *gdbarch, - struct gdbarch_data *data, - void *pointer) +deprecated_set_gdbarch_data (struct gdbarch *gdbarch, + struct gdbarch_data *data, + void *pointer) { gdb_assert (data->index < gdbarch->nr_data); gdb_assert (gdbarch->data[data->index] == NULL); + gdb_assert (data->pre_init == NULL); gdbarch->data[data->index] = pointer; } @@ -1879,18 +1893,33 @@ gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data) { gdb_assert (data->index < gdbarch->nr_data); - /* The data-pointer isn't initialized, call init() to get a value but - only if the architecture initializaiton has completed. Otherwise - punt - hope that the caller knows what they are doing. */ - if (gdbarch->data[data->index] == NULL - && gdbarch->initialized_p) + if (gdbarch->data[data->index] == NULL) { - /* Be careful to detect an initialization cycle. */ - gdb_assert (data->init_p); - data->init_p = 0; - gdb_assert (data->init != NULL); - gdbarch->data[data->index] = data->init (gdbarch); - data->init_p = 1; + /* The data-pointer isn't initialized, call init() to get a + value. */ + if (data->pre_init != NULL) + /* Mid architecture creation: pass just the obstack, and not + the entire architecture, as that way it isn't possible for + pre-init code to refer to undefined architecture + fields. */ + gdbarch->data[data->index] = data->pre_init (gdbarch->obstack); + else if (gdbarch->initialized_p + && data->post_init != NULL) + /* Post architecture creation: pass the entire architecture + (as all fields are valid), but be careful to also detect + recursive references. */ + { + gdb_assert (data->init_p); + data->init_p = 0; + gdbarch->data[data->index] = data->post_init (gdbarch); + data->init_p = 1; + } + else + /* The architecture initialization hasn't completed - punt - + hope that the caller knows what they are doing. Once + deprecated_set_gdbarch_data has been initialized, this can be + changed to an internal error. */ + return NULL; gdb_assert (gdbarch->data[data->index] != NULL); } return gdbarch->data[data->index]; Index: gnu-v3-abi.c =================================================================== RCS file: /cvs/src/src/gdb/gnu-v3-abi.c,v retrieving revision 1.20 diff -u -r1.20 gnu-v3-abi.c --- gnu-v3-abi.c 5 Dec 2003 04:25:09 -0000 1.20 +++ gnu-v3-abi.c 15 Mar 2004 20:36:42 -0000 @@ -422,7 +422,7 @@ static void init_gnuv3_ops (void) { - vtable_type_gdbarch_data = register_gdbarch_data (build_gdb_vtable_type); + vtable_type_gdbarch_data = gdbarch_data_register_post_init (build_gdb_vtable_type); gnu_v3_abi_ops.shortname = "gnu-v3"; gnu_v3_abi_ops.longname = "GNU G++ Version 3 ABI"; Index: libunwind-frame.c =================================================================== RCS file: /cvs/src/src/gdb/libunwind-frame.c,v retrieving revision 1.2 diff -u -r1.2 libunwind-frame.c --- libunwind-frame.c 13 Dec 2003 03:51:56 -0000 1.2 +++ libunwind-frame.c 15 Mar 2004 20:36:42 -0000 @@ -111,7 +111,7 @@ { /* First time here. Must initialize data area. */ arch_descr = libunwind_descr_init (gdbarch); - set_gdbarch_data (gdbarch, libunwind_descr_handle, arch_descr); + deprecated_set_gdbarch_data (gdbarch, libunwind_descr_handle, arch_descr); } /* Copy new descriptor info into arch descriptor. */ @@ -381,7 +381,7 @@ void _initialize_libunwind_frame (void) { - libunwind_descr_handle = register_gdbarch_data (libunwind_descr_init); + libunwind_descr_handle = gdbarch_data_register_post_init (libunwind_descr_init); libunwind_initialized = libunwind_load (); } Index: mips-linux-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/mips-linux-tdep.c,v retrieving revision 1.19 diff -u -r1.19 mips-linux-tdep.c --- mips-linux-tdep.c 14 Feb 2004 04:41:33 -0000 1.19 +++ mips-linux-tdep.c 15 Mar 2004 20:36:42 -0000 @@ -668,7 +668,7 @@ set_mips_linux_register_addr (struct gdbarch *gdbarch, CORE_ADDR (*register_addr_ptr) (int, CORE_ADDR)) { - set_gdbarch_data (gdbarch, register_addr_data, register_addr_ptr); + deprecated_set_gdbarch_data (gdbarch, register_addr_data, register_addr_ptr); } static void * @@ -844,7 +844,7 @@ const struct bfd_arch_info *arch_info; register_addr_data = - register_gdbarch_data (init_register_addr_data); + gdbarch_data_register_post_init (init_register_addr_data); for (arch_info = bfd_lookup_arch (bfd_arch_mips, 0); arch_info != NULL; Index: regcache.c =================================================================== RCS file: /cvs/src/src/gdb/regcache.c,v retrieving revision 1.109 diff -u -r1.109 regcache.c --- regcache.c 29 Feb 2004 17:01:38 -0000 1.109 +++ regcache.c 15 Mar 2004 20:36:42 -0000 @@ -1705,7 +1705,7 @@ void _initialize_regcache (void) { - regcache_descr_handle = register_gdbarch_data (init_regcache_descr); + regcache_descr_handle = gdbarch_data_register_post_init (init_regcache_descr); DEPRECATED_REGISTER_GDBARCH_SWAP (current_regcache); DEPRECATED_REGISTER_GDBARCH_SWAP (deprecated_registers); DEPRECATED_REGISTER_GDBARCH_SWAP (deprecated_register_valid); Index: reggroups.c =================================================================== RCS file: /cvs/src/src/gdb/reggroups.c,v retrieving revision 1.8 diff -u -r1.8 reggroups.c --- reggroups.c 22 Aug 2003 09:49:01 -0000 1.8 +++ reggroups.c 15 Mar 2004 20:36:42 -0000 @@ -109,7 +109,7 @@ /* ULGH, called during architecture initialization. Patch things up. */ groups = reggroups_init (gdbarch); - set_gdbarch_data (gdbarch, reggroups_data, groups); + deprecated_set_gdbarch_data (gdbarch, reggroups_data, groups); } add_group (groups, group, GDBARCH_OBSTACK_ZALLOC (gdbarch, struct reggroup_el)); @@ -268,7 +268,7 @@ void _initialize_reggroup (void) { - reggroups_data = register_gdbarch_data (reggroups_init); + reggroups_data = gdbarch_data_register_post_init (reggroups_init); /* The pre-defined list of groups. */ add_group (&default_groups, general_reggroup, XMALLOC (struct reggroup_el)); Index: remote.c =================================================================== RCS file: /cvs/src/src/gdb/remote.c,v retrieving revision 1.130 diff -u -r1.130 remote.c --- remote.c 25 Feb 2004 20:41:00 -0000 1.130 +++ remote.c 15 Mar 2004 20:36:44 -0000 @@ -5456,7 +5456,7 @@ struct cmd_list_element *tmpcmd; /* architecture specific data */ - remote_gdbarch_data_handle = register_gdbarch_data (init_remote_state); + remote_gdbarch_data_handle = gdbarch_data_register_post_init (init_remote_state); /* Old tacky stuff. NOTE: This comes after the remote protocol so that the remote protocol has been initialized. */ Index: solib-svr4.c =================================================================== RCS file: /cvs/src/src/gdb/solib-svr4.c,v retrieving revision 1.42 diff -u -r1.42 solib-svr4.c --- solib-svr4.c 11 Mar 2004 17:04:40 -0000 1.42 +++ solib-svr4.c 15 Mar 2004 20:36:44 -0000 @@ -1486,7 +1486,7 @@ set_solib_svr4_fetch_link_map_offsets (struct gdbarch *gdbarch, struct link_map_offsets *(*flmo) (void)) { - set_gdbarch_data (gdbarch, fetch_link_map_offsets_gdbarch_data, flmo); + deprecated_set_gdbarch_data (gdbarch, fetch_link_map_offsets_gdbarch_data, flmo); } /* Initialize the architecture-specific link_map_offsets fetcher. @@ -1584,7 +1584,7 @@ _initialize_svr4_solib (void) { fetch_link_map_offsets_gdbarch_data = - register_gdbarch_data (init_fetch_link_map_offsets); + gdbarch_data_register_post_init (init_fetch_link_map_offsets); svr4_so_ops.relocate_section_addresses = svr4_relocate_section_addresses; svr4_so_ops.free_so = svr4_free_so; Index: user-regs.c =================================================================== RCS file: /cvs/src/src/gdb/user-regs.c,v retrieving revision 1.4 diff -u -r1.4 user-regs.c --- user-regs.c 9 Mar 2004 20:03:37 -0000 1.4 +++ user-regs.c 15 Mar 2004 20:36:44 -0000 @@ -110,7 +110,7 @@ /* ULGH, called during architecture initialization. Patch things up. */ regs = user_regs_init (gdbarch); - set_gdbarch_data (gdbarch, user_regs_data, regs); + deprecated_set_gdbarch_data (gdbarch, user_regs_data, regs); } append_user_reg (regs, name, read, GDBARCH_OBSTACK_ZALLOC (gdbarch, struct user_reg)); @@ -207,5 +207,5 @@ void _initialize_user_regs (void) { - user_regs_data = register_gdbarch_data (user_regs_init); + user_regs_data = gdbarch_data_register_post_init (user_regs_init); } --------------050609020702070801040102--