Messages in this thread | | | Date | Tue, 08 Jun 2004 20:15:53 +0900 | From | Mike McCormack <> | Subject | Re: WINE + NX (No eXecute) support for x86, 2.6.7-rc2-bk2 |
| |
> Really the most safe way for Wine is to create a PT_LOAD segment with > p_flags 0 covering the whole area below the executable. The kernel first > maps the executable, then the dynamic linker, so no matter what address > are ld.so and shared libraries prelinked to, they will not be mapped to the > area Wine reserves.
I did not investigate this, but others who did think that it is not possible to create a segment that is reserve only so that does not unnecessarily consume virtual memory. Apparently ELF allows it, but Linux doesn't.
Secondly the amount of memory we want to reserve depends upon the PE executable that we want to load, so varies. If we reserve only what memory we need, when possible shared libraries can be loaded at their prefered load address, and benefit from prelinking.
> Making Wine a PIE is also a possible solution (at least in FC2 for > non-prelinked PIEs kernel doesn't honor ld.so's prelinked address), but > then you cannot be sure the kernel doesn't choose the addresses Wine wishes > to reserve while randomizing.
We are using a staticly linked binary (preloader) with a fixed load address at the moment, which reserves memory first, then loads ld-linux.so.2 and wine as the kernel would.
Mike - 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/
| |