mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 18:44:20 +08:00
gdb/
* solib-svr4.c (LM_ADDR_CHECK): New comment on PPC-aware condition.
This commit is contained in:
parent
5d5b640e00
commit
5c0d192f85
@ -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>
|
2010-02-11 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
* ax-gdb.c (gen_exp_binop_rest) [BINOP_SUBSCRIPT]: Error out if
|
* 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,
|
location, or anything, really. To avoid regressions,
|
||||||
don't adjust the base offset in the latter case, although
|
don't adjust the base offset in the latter case, although
|
||||||
odds are that, if things really changed, debugging won't
|
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))
|
if ((l_addr & align) == ((l_dynaddr - dynaddr) & align))
|
||||||
{
|
{
|
||||||
l_addr = l_dynaddr - dynaddr;
|
l_addr = l_dynaddr - dynaddr;
|
||||||
|
Loading…
Reference in New Issue
Block a user