* 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,6 +1,7 @@
/* Target-dependent code for NetBSD/mips.
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
This file is part of GDB.
@ -327,21 +328,21 @@ mipsnbsd_ilp32_fetch_link_map_offsets (void)
{
lmp = &lmo;
/* Everything we need is in the first 8 bytes. */
lmo.r_debug_size = 8;
lmo.r_version_offset = 0;
lmo.r_version_size = 4;
lmo.r_map_offset = 4;
lmo.r_map_size = 4;
lmo.r_ldsomap_offset = -1;
/* Everything we need is in the first 24 bytes. */
lmo.link_map_size = 24;
lmo.l_addr_offset = 4;
lmo.l_addr_size = 4;
lmo.l_addr_size = 4;
lmo.l_name_offset = 8;
lmo.l_name_size = 4;
lmo.l_name_size = 4;
lmo.l_next_offset = 16;
lmo.l_next_size = 4;
lmo.l_next_size = 4;
lmo.l_prev_offset = 20;
lmo.l_prev_size = 4;
lmo.l_prev_size = 4;
}
return lmp;
@ -357,21 +358,21 @@ mipsnbsd_lp64_fetch_link_map_offsets (void)
{
lmp = &lmo;
/* Everything we need is in the first 16 bytes. */
lmo.r_debug_size = 16;
lmo.r_map_offset = 8;
lmo.r_map_size = 8;
lmo.r_version_offset = 0;
lmo.r_version_size = 4;
lmo.r_map_offset = 8;
lmo.r_ldsomap_offset = -1;
/* Everything we need is in the first 40 bytes. */
lmo.link_map_size = 48;
lmo.l_addr_offset = 0;
lmo.l_addr_size = 8;
lmo.l_addr_size = 8;
lmo.l_name_offset = 16;
lmo.l_name_size = 8;
lmo.l_name_size = 8;
lmo.l_next_offset = 32;
lmo.l_next_size = 8;
lmo.l_next_size = 8;
lmo.l_prev_offset = 40;
lmo.l_prev_size = 8;
lmo.l_prev_size = 8;
}
return lmp;