PROT_EXEC mmap/mprotect, i386 PAE + NX broken, x86-64 2.6.17-rc2
Marcus Meissner
marcus at jet.franken.de
Sat Apr 22 02:38:20 CDT 2006
On Sat, Apr 22, 2006 at 04:30:24AM +0100, Alistair John Strachan wrote:
> Hi,
>
> Just a heads up that WINE seems to suffer from breakage if executed as a 32bit
> binary on an x86-64 kernel as of 2.6.17-rc, because (according to Andi Kleen)
> i386 NX is now enabled by default, and on x86-64 i386 behaves like a PAE
> enabled i386 kernel when performing IA32 emulation.
>
> I've attached the entire thread for reference, as unfortunately I do not have
> the time to debug this problem, but thought that probably one of you would
> like to know.
>
> Thread is also available to read here:
>
> http://lkml.org/lkml/2006/4/21/99
>
> Andi suspects that WINE is not making one of its mappings PROT_EXEC which
> causes a fault with NX enabled.
Well, in your case it seems to be the main executable, since it faults
at its very first instruction.
> [alistair] 11:17 [~/.wine/drive_c/Program Files/Warcraft III] wine war3.exe -opengl
> wine: Unhandled page fault on write access to 0x00495000 at address 0x495000 (thread 0009), starting debugger...
> =>1 0x00495000 EntryPoint in war3 (0x00495000)
> 2 0xf7f763ab wine_switch_to_stack+0x17 in libwine.so.1 (0xf7f763ab)
> 0x00495000 EntryPoint in war3: pushl %eax
Please run with:
WINEDEBUG=+virtual wine war3.exe -opengl
And look for the virtual entries in the vicinity of 495000.
Ciao, Marcus
More information about the wine-devel
mailing list