On Thu, 2005-05-19 at 15:43 +0100, Maciej W. Rozycki wrote:
> On Thu, 19 May 2005, Steven Rostedt wrote:
>
> > > See create_elf_tables. The aux table comes after the environment.
> >
> > As I stated earlier, the page size passed in there is ELF_EXEC_PAGESIZE
> > which may not be the same as PAGE_SIZE.
>
> Well, AT_PAGESZ is specified as "system page size". If we pass something
> else, then it's asking for troubles. What comes from AT_PAGESZ is used by
> userland for stuff like masking arguments for mmap() and mprotect() so
> it'd better be the right value.
Well, they probably are the same, but then what's the reason for the
lines in binfmt_elf.c:
#if ELF_EXEC_PAGESIZE > PAGE_SIZE
# define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE
#else
# define ELF_MIN_ALIGN PAGE_SIZE
#endif
This looks to me that ELF_EXEC_PAGESIZE and PAGE_SIZE may not be the
same. And what's passed to AT_PAGESZ is ELF_EXEC_PAGESIZE. In mips (as
your email address shows you are interested in) ELF_EXEC_PAGESIZE is
simply defined as PAGE_SIZE. But in intel i386, it is defined as 4096,
which coincidentally is the same as PAGE_SIZE but there's no guarantee
that this will be the same, unless who ever changes PAGE_SIZE also
remembers to change ELF_EXEC_PAGESIZE.
In arm26 the PAGE_SIZE is configurable (16k or 32k) but the
ELF_EXEC_PAGESIZE stays as 32k. So is this a bug?
-- Steve
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]