[Bug 32991] win32-arm applications need ntdll.dll.RtlUnwindEx implementation for exception handling/unwinding

WineHQ Bugzilla wine-bugs at winehq.org
Sun May 24 15:06:52 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=32991

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|32-bit/64-bit Windows on    |win32-arm applications need
                   |ARM applications need       |ntdll.dll.RtlUnwindEx
                   |ntdll.dll.RtlUnwindEx       |implementation for
                   |implementation              |exception
                   |                            |handling/unwinding

--- Comment #11 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

revisiting. The support for win64/arm64 was added in
https://source.winehq.org/git/wine.git/commitdiff/9220772d28c6c10051626dbf466faa713e3e9405
("ntdll: Add RtlUnwindEx spec entry for ARM64."), part of Wine 4.15 release.

Thanks André

For armv7 PE32 executables this is still missing. The app 'WabbitEMU' from XDA
developers forum actually starts and displays a configuration dialog now
without a crash on the target - progress. It will definitely hit the
unimplemented stub as soon as exception handling/unwinding is involved as part
of whatever error handling. Not sure how to trigger that now ;-)

Stable link via Internet Archive:

https://web.archive.org/web/20200524191508/https://dl.xda-cdn.com/1/7/2/5/6/9/7/Wabbitemu.zip?key=f3amU_k_CYdOsaGZdFNEEA&ts=1590347749

--- snip ---
$ uname -a
Linux hikey960 4.20.0-rc4+ #1 SMP PREEMPT Mon Dec 3 12:01:56 UTC 2018 aarch64
aarch64 aarch64 GNU/Linux

$ WINEDEBUG=+seh,+relay,+module,+loaddll wine ./Wabbitemu.exe >>log.txt 2>&1
...
0024:trace:module:load_dll looking for L"KERNEL32.dll" in
L"E:\\home\\focht\\projects;C:\\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem;C:\\windows\\system32\\WindowsPowershell\\v1.0"
0024:trace:module:load_dll Found L"C:\\windows\\system32\\kernel32.dll" for
L"KERNEL32.dll" at 0x7fbf0000, count=23
0024:warn:module:import_dll No implementation for KERNEL32.dll.RtlUnwindEx
imported from L"E:\\home\\focht\\projects\\Wabbitemu.exe", setting to
0x80140000
...
--- snip ---

https://source.winehq.org/git/wine.git/blob/056c9df854817670dc4fb9c095cba29c99089ac8:/dlls/ntdll/ntdll.spec#l1018

--- snip ---
1018 @ stdcall -arch=arm64,x86_64 RtlUnwindEx(ptr ptr ptr ptr ptr ptr)
--- snip ---

--- snip ---
$ file Wabbitemu.exe 
Wabbitemu.exe: PE32 executable (GUI) ARMv7 Thumb, for MS Windows

$ winedump -j import Wabbitemu.exe 
Contents of Wabbitemu.exe: 2574336 bytes

...
  offset 00079bf8 KERNEL32.dll
  Hint/Name Table: 0007AD34
  TimeDateStamp:   00000000 (Thu Jan  1 01:00:00 1970)
  ForwarderChain:  00000000
  First thunk RVA: 0006A04C
   Thunk    Ordn  Name
  0006a04c  1209  RtlUnwindEx
  0006a050   481  GetCommandLineA
  0006a054  1205  RtlPcToFileHeader
  0006a058  1203  RtlLookupFunctionEntry
...
--- snip ---

Although Windows RT is dead for a good while, the XDA developers community
still does ports of apps to ARMv7 which could be useful for testing.

$ sha1sum Wabbitemu.zip 
1fce55d4e297db6c67545767ad60f2dc88ed597a  Wabbitemu.zip

$ du -sh Wabbitemu.zip 
1.7M    Wabbitemu.zip

$ wine --version
wine-5.9

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list