https://bugs.winehq.org/show_bug.cgi?id=53682
Martin Storsjö martin@martin.st changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |martin@martin.st
--- Comment #7 from Martin Storsjö martin@martin.st --- FYI I see others mentioning this issue, but I've successfully run most versions of Wine after 7.14 on aarch64 without problems. I primarily run Wine headless (with X disabled, built with "--without-freetype --without-x"), but I did a recent build now with X enabled too, and I can open GUI apps (tested with explorer.exe) just fine. The mentioned codepaths do get executed in my tests.
I don't quite follow exactly what the issue at hand is - the stack frame of KeUserModeCallback gets clobbered/overlapped by another stack frame?
Can you provide a patch that adds verbose TRACE messages that show exactly where this happens, so I can understand why this seems to work fine for me? (I'm not saying the current code is correct, but I'm curious since I don't run into the issue.) It's easy to grab the current SP register within functions with inline assembly snippets like this:
DWORD64 sp; __asm__ __volatile__ ("mov %0, sp" : "=r"(sp)); TRACE("sp %llx\n", sp);