--- elf/dl-load.c 2005-06-20 02:51:57.492039328 +0000 +++ elf/dl-load.c 2005-06-20 02:52:41.668323512 +0000 @@ -987,12 +987,12 @@ } c = &loadcmds[nloadcmds++]; - c->mapstart = ph->p_vaddr & ~(GLRO(dl_pagesize) - 1); + c->mapstart = ph->p_vaddr & ~(ph->p_align - 1); c->mapend = ((ph->p_vaddr + ph->p_filesz + GLRO(dl_pagesize) - 1) & ~(GLRO(dl_pagesize) - 1)); c->dataend = ph->p_vaddr + ph->p_filesz; c->allocend = ph->p_vaddr + ph->p_memsz; - c->mapoff = ph->p_offset & ~(GLRO(dl_pagesize) - 1); + c->mapoff = ph->p_offset & ~(ph->p_align - 1); /* Determine whether there is a gap between the last segment and this one. */