Messages in this thread |  | | Date | Sun, 23 Sep 2001 12:30:42 +0100 | From | James McKenzie <> | Subject | alpha 4K mmap offsets and em86 |
| |
Hi,
very sorry if this has been discussed before I couldn't find any references in the archive. There is a program on the alpha architecture which can (with a little help from the kernel) execute ia32 linux binaries it's useful if you need to run badly written 32 bit code.
The emulator needs to mmap elf binaries in, and offsets in ia32 elf files are 4k aligned for a 4k pagesize. On 2.2 on an alpha you could do mmap(NULL,3176, ... , fd, 0x1000); but now in 2.4 but in 2.4 it returns EINVAL.
The code in mm/mmap.c and vm_area_struct seem to now count the offset in pages rather than bytes, which would make fixing this ugly [maybe an element in the structure to store 'slop' ?]
I can fix static binaries by patching an ia32 ld to generate 8k alignments and running ld on the binary - but I suspect this problem will surface again once ia64 takes off.
Any ideas or pointers very welcome,
Thanks,
James.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |