mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-30 12:44:10 +08:00
* nto-tdep.c (lm_info): Updated struct lm_info definition from
solib-svr4.c (LM_ADDR): Use l_addr if available; if not, use link map and set l_addr.
This commit is contained in:
parent
886a217cf4
commit
ebd67d8768
@ -1,3 +1,10 @@
|
||||
2008-08-14 Aleksandar Ristovski <aristovski@qnx.com>
|
||||
|
||||
* nto-tdep.c (lm_info): Updated struct lm_info definition from
|
||||
solib-svr4.c
|
||||
(LM_ADDR): Use l_addr if available; if not, use link map and set
|
||||
l_addr.
|
||||
|
||||
2008-08-14 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* macrocmd.c (macro_define_command): Check for NULL argument.
|
||||
|
@ -253,21 +253,39 @@ nto_parse_redirection (char *pargv[], const char **pin, const char **pout,
|
||||
solib-svr4.c to support nto_relocate_section_addresses
|
||||
which is different from the svr4 version. */
|
||||
|
||||
/* Link map info to include in an allocated so_list entry */
|
||||
|
||||
struct lm_info
|
||||
{
|
||||
/* Pointer to copy of link map from inferior. The type is char *
|
||||
rather than void *, so that we may use byte offsets to find the
|
||||
various fields without the need for a cast. */
|
||||
char *lm;
|
||||
};
|
||||
{
|
||||
/* Pointer to copy of link map from inferior. The type is char *
|
||||
rather than void *, so that we may use byte offsets to find the
|
||||
various fields without the need for a cast. */
|
||||
gdb_byte *lm;
|
||||
|
||||
/* Amount by which addresses in the binary should be relocated to
|
||||
match the inferior. This could most often be taken directly
|
||||
from lm, but when prelinking is involved and the prelink base
|
||||
address changes, we may need a different offset, we want to
|
||||
warn about the difference and compute it only once. */
|
||||
CORE_ADDR l_addr;
|
||||
|
||||
/* The target location of lm. */
|
||||
CORE_ADDR lm_addr;
|
||||
};
|
||||
|
||||
|
||||
static CORE_ADDR
|
||||
LM_ADDR (struct so_list *so)
|
||||
{
|
||||
struct link_map_offsets *lmo = nto_fetch_link_map_offsets ();
|
||||
if (so->lm_info->l_addr == (CORE_ADDR)-1)
|
||||
{
|
||||
struct link_map_offsets *lmo = nto_fetch_link_map_offsets ();
|
||||
|
||||
return extract_typed_address (so->lm_info->lm + lmo->l_addr_offset,
|
||||
builtin_type_void_data_ptr);
|
||||
so->lm_info->l_addr =
|
||||
extract_typed_address (so->lm_info->lm + lmo->l_addr_offset,
|
||||
builtin_type_void_data_ptr);
|
||||
}
|
||||
return so->lm_info->l_addr;
|
||||
}
|
||||
|
||||
static CORE_ADDR
|
||||
|
Loading…
Reference in New Issue
Block a user