On 4/16/07, Daniel Jacobowitz <[EMAIL PROTECTED]> wrote:
On Sun, Apr 15, 2007 at 10:37:08PM +0300, Blue Swirl wrote:
> On 4/15/07, Paul Brook <[EMAIL PROTECTED]> wrote:
> > On Sunday 15 April 2007 20:11, Blue Swirl wrote:
> > > > Probably the linker is making sure the file offset and VMA are the same
> > > > modulo the page size.
> > >
> > > But that would be one huge file, as the VMA is near 2TB:
> >
> > I said *modulo the pace size* :-)
> > Lets say ld thinks the page size for your system is 1Mb (nor an unreasonable
> > assumption). The vma of .text is aligned on a 1Mb boundary. In order to
> > allow loading via mmap, the location of .text within the file must also be
> > aligned on a 1Mb boundary. It can't put it at address zero because the ELF
> > headers get in the way, so the first viable location is 1Mb into the file.
>
> Nice theory (and I missed the modulo arithmetic, sorry), but on
> Ultrasparc the page sizes available are 8k, 64k, 4M and 256M.
#define ELF_MAXPAGESIZE 0x100000
BFD and GNU ld think it's 1MB.
I stand corrected. Is there anything that can be done to reduce this waste?