* solib-svr4.h (struct link_map_offsets): Remove r_debug_size and

r_map_size members.  Add r_version_offset, r_version_size and
r_ldsomap_offset members.
* solib-svr4.c (solib_svr4_r_map): Renamed from
fetch_link_map_member.  Simplify using read_memory_typed_address.
(solib_svr4_r_ldsomap): New function.
(open_symbol_file_object): Use solib_svr_r_map.
(svr4_current_sos): Use solib_svr4_r_map and look for the dynamic
linker by using solib_svr4_r_ldsomap.
(svr4_ilp32_fetch_link_map_offsets)
(svr4_lp64_fetch_link_map_offsets): Adjust for changes to `struct
link_map_offsets'.
* solib-legacy.c (legacy_svr4_fetch_link_map_offsets): Adjust for
changes to `struct link_map_offsets'.
* mipsnbsd-tdep.c (mipsnbsd_ilp32_fetch_link_map_offsets)
(mipsnbsd_lp64_fetch_link_map_offsets): Adjust for changes to
`struct link_map_offsets'.
This commit is contained in:
Mark Kettenis
2006-02-02 22:15:01 +00:00
parent de205c03b9
commit e4cd0d6a26
5 changed files with 103 additions and 76 deletions

View File

@@ -1,5 +1,6 @@
/* Provide legacy r_debug and link_map support for SVR4-like native targets.
Copyright (C) 2000, 2001
Copyright (C) 2000, 2001, 2006
Free Software Foundation, Inc.
This file is part of GDB.
@@ -55,10 +56,10 @@ legacy_svr4_fetch_link_map_offsets (void)
lmp = &lmo;
#ifdef HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS
lmo.r_debug_size = sizeof (struct r_debug);
lmo.r_version_offset = offsetof (struct r_debug, r_version);
lmo.r_version_size = fieldsize (struct r_debug, r_version);
lmo.r_map_offset = offsetof (struct r_debug, r_map);
lmo.r_map_size = fieldsize (struct r_debug, r_map);
lmo.r_ldsomap_offset = -1;
lmo.link_map_size = sizeof (struct link_map);
@@ -107,10 +108,10 @@ legacy_svr4_fetch_link_map_offsets (void)
{
lmp32 = &lmo32;
lmo32.r_debug_size = sizeof (struct r_debug32);
lmo32.r_version_offset = offsetof (struct r_debug32, r_version);
lmo32.r_version_size = fieldsize (struct r_debug32, r_version);
lmo32.r_map_offset = offsetof (struct r_debug32, r_map);
lmo32.r_map_size = fieldsize (struct r_debug32, r_map);
lmo32.r_ldsomap_offset = -1;
lmo32.link_map_size = sizeof (struct link_map32);