[Bug 50171] 32-bit PE entry point no longer called through BaseThreadInitThunk() assembly wrapper when Wine is built with LLVM MinGW
WineHQ Bugzilla
wine-bugs at winehq.org
Mon Nov 23 17:47:26 CST 2020
https://bugs.winehq.org/show_bug.cgi?id=50171
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Fixed by SHA1| |d896b1195d876085f7127accd44
| |5c3ecd504da3f
Resolution|--- |FIXED
--- Comment #1 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
this is fixed by commit
https://source.winehq.org/git/wine.git/commitdiff/d896b1195d876085f7127accd445c3ecd504da3f
("kernel32: Implement BaseThreadInitThunk in assembly also for PE builds.").
Thanks Alexandre
After the fix:
--- snip ---
$ wine --version
wine-5.22-39-g4807a8f588c
$ winedbg "c:\\windows\\syswow64\\notepad.exe"
Wine-dbg>b mainCRTStartup
Breakpoint 1 at 0x0000000000405280 mainCRTStartup in notepad
Wine-dbg>c
Stopped on breakpoint 1 at 0x0000000000405280 mainCRTStartup in notepad
Wine-dbg>x $esp
7b624240
Wine-dbg>disas 0x7b624240-0x10
# caller is BaseThreadInitThunk assembly wrapper
0x000000007b624230 WriteTapemark+0xa0 in kernel32: pushl %ebp
0x000000007b624231 WriteTapemark+0xa1 in kernel32: movl %esp,%ebp
0x000000007b624233 WriteTapemark+0xa3 in kernel32: pushl %ebx
0x000000007b624234 WriteTapemark+0xa4 in kernel32: movl 0x8(%ebp),%ebx
0x000000007b624237 WriteTapemark+0xa7 in kernel32: pushl 0x4(%ebp)
0x000000007b62423a WriteTapemark+0xaa in kernel32: pushl 0x4(%ebp)
0x000000007b62423d WriteTapemark+0xad in kernel32: pushl %ebx
0x000000007b62423e WriteTapemark+0xae in kernel32: call *%edx
0x000000007b624240 WriteTapemark+0xb0 in kernel32: movl %eax,0x0(%esp)
0x000000007b624243 WriteTapemark+0xb3 in kernel32: call 0x000000007b628c77
_RtlExitUserThread at 4 in kernel32
--- snip ---
Before the fix:
--- snip ---
$ export PATH=/home/focht/projects/wine/mainline-install-5.22-x86_64/bin:$PATH
$ wine --version
wine-5.22
Wine-dbg>b mainCRTStartup
Breakpoint 1 at 0x0000000000405280 mainCRTStartup in notepad
Wine-dbg>c
Stopped on breakpoint 1 at 0x0000000000405280 mainCRTStartup in notepad
Wine-dbg>x $esp
7b624258
Wine-dbg>disas 0x7b624258-0x8
0x000000007b624250 BaseThreadInitThunk in kernel32: pushl %ebp
0x000000007b624251 BaseThreadInitThunk+0x1 in kernel32: movl %esp,%ebp
0x000000007b624253 BaseThreadInitThunk+0x3 in kernel32: pushl 0x8(%ebp)
0x000000007b624256 BaseThreadInitThunk+0x6 in kernel32: call *%edx
0x000000007b624258 BaseThreadInitThunk+0x8 in kernel32: pushl %eax
0x000000007b624259 BaseThreadInitThunk+0x9 in kernel32: call *0x7b639968 ->
(invalid destination)
0x000000007b62425f BaseThreadInitThunk+0xf in kernel32: nop
--- snip ---
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