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. -- Daniel Jacobowitz CodeSourcery