gdb/
* solib-svr4.c (LM_ADDR_CHECK): New comment on PPC-aware condition.
This commit is contained in:
parent
5d5b640e00
commit
5c0d192f85
2 changed files with 18 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2010-02-11 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* solib-svr4.c (LM_ADDR_CHECK): New comment on PPC-aware condition.
|
||||
|
||||
2010-02-11 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* ax-gdb.c (gen_exp_binop_rest) [BINOP_SUBSCRIPT]: Error out if
|
||||
|
|
|
@ -217,7 +217,19 @@ LM_ADDR_CHECK (struct so_list *so, bfd *abfd)
|
|||
location, or anything, really. To avoid regressions,
|
||||
don't adjust the base offset in the latter case, although
|
||||
odds are that, if things really changed, debugging won't
|
||||
quite work. */
|
||||
quite work.
|
||||
|
||||
One could expect more the condition
|
||||
((l_addr & align) == 0 && ((l_dynaddr - dynaddr) & align) == 0)
|
||||
but the one below is relaxed for PPC. The PPC kernel supports
|
||||
either 4k or 64k page sizes. To be prepared for 64k pages,
|
||||
PPC ELF files are built using an alignment requirement of 64k.
|
||||
However, when running on a kernel supporting 4k pages, the memory
|
||||
mapping of the library may not actually happen on a 64k boundary!
|
||||
|
||||
(In the usual case where (l_addr & align) == 0, this check is
|
||||
equivalent to the possibly expected check above.) */
|
||||
|
||||
if ((l_addr & align) == ((l_dynaddr - dynaddr) & align))
|
||||
{
|
||||
l_addr = l_dynaddr - dynaddr;
|
||||
|
|
Loading…
Reference in a new issue