This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH/RFA]: Adapt solib-svr4.c for recent gdbarch_data changes
- From: Mark Kettenis <kettenis at chello dot nl>
- To: gdb-patches at sources dot redhat dot com
- Date: Sun, 9 Jun 2002 17:26:26 +0200 (CEST)
- Subject: [PATCH/RFA]: Adapt solib-svr4.c for recent gdbarch_data changes
Discovered this moring that my gdb was crashing. Seems like we have
an initialization cycle here. I think that after Andrew's patch we
can simplify init_fetch_link_map_offsets as in the attached patch.
OK to check this in?
Mark
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
* solib-svr4.c (init_fetch_link_map_offsets): Simply return
legacy_fetch_link_map_offsets. Adjust comment to reflect reality
after Andrew's 2002-06-08 gdbarch change.
Index: solib-svr4.c
===================================================================
RCS file: /cvs/src/src/gdb/solib-svr4.c,v
retrieving revision 1.25
diff -u -p -r1.25 solib-svr4.c
--- solib-svr4.c 12 May 2002 01:02:58 -0000 1.25
+++ solib-svr4.c 9 Jun 2002 15:22:10 -0000
@@ -1318,24 +1318,20 @@ set_solib_svr4_fetch_link_map_offsets (s
set_gdbarch_data (gdbarch, fetch_link_map_offsets_gdbarch_data, flmo);
}
-/* Initialize the architecture specific link_map_offsets fetcher.
- This is called after <arch>_gdbarch_init() has set up its struct
- gdbarch for the new architecture, so care must be taken to use the
- value set by set_solib_svr4_fetch_link_map_offsets(), above. We
- do, however, attempt to provide a reasonable alternative (for
- native targets anyway) if the <arch>_gdbarch_init() fails to call
+/* Initialize the architecture-specific link_map_offsets fetcher.
+ This is called after <arch>_gdbarch_init() has set up its `struct
+ gdbarch' for the new architecture, and is only called if the
+ link_map_offsets fetcher isn't already initialized (which is
+ usually done by calling set_solib_svr4_fetch_link_map_offsets()
+ above in <arch>_gdbarch_init()). Therefore we attempt to provide a
+ reasonable alternative (for native targets anyway) if the
+ <arch>_gdbarch_init() fails to call
set_solib_svr4_fetch_link_map_offsets(). */
static void *
init_fetch_link_map_offsets (struct gdbarch *gdbarch)
{
- struct link_map_offsets *(*flmo) =
- gdbarch_data (gdbarch, fetch_link_map_offsets_gdbarch_data);
-
- if (flmo == NULL)
- return legacy_fetch_link_map_offsets;
- else
- return flmo;
+ return legacy_fetch_link_map_offsets;
}
static struct target_so_ops svr4_so_ops;