[Bug 47464] wineboot crashes after building as PE file starting with Wine 4.12
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Jul 6 04:25:43 CDT 2019
https://bugs.winehq.org/show_bug.cgi?id=47464
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
Keywords| |regression
Summary|wineboot keep crash after |wineboot crashes after
|build with msvcrt. |building as PE file
| |starting with Wine 4.12
Component|-unknown |programs
Status|UNCONFIRMED |NEW
Regression SHA1| |4a8483044ea346e09b4f2769fd1
| |f869a6e4533f6
Version|unspecified |4.12
Severity|normal |critical
Hardware|x86 |x86-64
Ever confirmed|0 |1
--- Comment #2 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
confirming. Wine 4.12 release is unfortunately broken due to this. New prefixes
are left in corrupted state and existing prefix updates won't work.
--- snip ---
$ WINEDEBUG=+seh,+relay wineboot >>log.txt 2>&1
...
000b:Call KERNEL32.CreateEventW(0032ee20,00000001,00000000,0040b7e0
L"__wineboot_event") ret=00406871
000b:Call kernelbase.CreateEventW(0032ee20,00000001,00000000,0040b7e0
L"__wineboot_event") ret=7bc935ff
000b:Call ntdll.RtlInitUnicodeString(0032ebf0,0040b7e0 L"__wineboot_event")
ret=7106f407
000b:Ret ntdll.RtlInitUnicodeString() retval=00000022 ret=7106f407
000b:Call ntdll._vsnwprintf(0032eb00,00000040,710800e0
L"\\Sessions\\%u\\BaseNamedObjects",0032eaa8) ret=7106f2b4
000b:Ret ntdll._vsnwprintf() retval=0000001c ret=7106f2b4
000b:Call ntdll.RtlInitUnicodeString(0032eac0,0032eb00
L"\\Sessions\\1\\BaseNamedObjects") ret=7106f32e
000b:Ret ntdll.RtlInitUnicodeString() retval=0000003a ret=7106f32e
000b:Call ntdll.NtOpenDirectoryObject(0032eab8,00000006,0032ead0) ret=7106f373
000b: open_directory( access=00000006, attributes=00000000, rootdir=0000,
directory_name=L"\\Sessions\\1\\BaseNamedObjects" )
000b: open_directory() = 0 { handle=0014 }
000b:Ret ntdll.NtOpenDirectoryObject() retval=00000000 ret=7106f373
000b:Call ntdll.NtCreateEvent(0032ebe8,001f0003,0032ec00,00000000,00000000)
ret=7106fa89
000b: create_event( access=001f0003, manual_reset=1, initial_state=0,
objattr={rootdir=0014,attributes=00000082,sd={},name=L"__wineboot_event"} )
000b: create_event() = OBJECT_NAME_EXISTS { handle=0018 }
000b:Ret ntdll.NtCreateEvent() retval=40000000 ret=7106fa89
000b:Ret kernelbase.CreateEventW() retval=00000018 ret=7bc935ff
000b:Ret KERNEL32.CreateEventW() retval=00000018 ret=00406871
000b:Call KERNEL32.ResetEvent(00000018) ret=00406881
000b:Call kernelbase.ResetEvent(00000018) ret=7bc935ff
000b:Call ntdll.NtResetEvent(00000018,00000000) ret=7106fed5
000b: event_op( handle=0018, op=2 )
000b: event_op() = 0 { state=0 }
000b:Ret ntdll.NtResetEvent() retval=00000000 ret=7106fed5
000b:Ret kernelbase.ResetEvent() retval=00000001 ret=7bc935ff
000b:Ret KERNEL32.ResetEvent() retval=00000001 ret=00406881
000b:Call ntdll.NtQuerySystemInformation(00000001,0032ee10,0000000c,00000000)
ret=0040697f
000b:Ret ntdll.NtQuerySystemInformation() retval=00000000 ret=0040697f
000b:Call ntdll.RtlAllocateHeap(00010000,00000000,000000c0) ret=0040699a
000b:Ret ntdll.RtlAllocateHeap() retval=0002db60 ret=0040699a
000b:Call
ntdll.NtPowerInformation(0000000b,00000000,00000000,0002db60,000000c0)
ret=004069c2
000b:Ret ntdll.NtPowerInformation() retval=00000000 ret=004069c2
000b:Call msvcrt.wcscmp(0032f050 L"",0040b700 L"AuthenticAMD") ret=004081a8
000b:Ret msvcrt.wcscmp() retval=ffffffbf ret=004081a8
000b:trace:seh:NtRaiseException code=c0000005 flags=0 addr=0x402555 ip=402555
tid=000b
000b:trace:seh:NtRaiseException info[0]=0000000000000001
000b:trace:seh:NtRaiseException info[1]=000000000040b6e0
000b:trace:seh:NtRaiseException rax=0000000000000001 rbx=0000000000000000
rcx=0000000000000000 rdx=0000000000000000
000b:trace:seh:NtRaiseException rsi=000000000040b6e0 rdi=00000000000000c0
rbp=0000000000000000 rsp=000000000032ecc0
000b:trace:seh:NtRaiseException r8=000000000007ffff r9=000000000032e542
r10=0000000000000000 r11=0000000000000246
000b:trace:seh:NtRaiseException r12=0000000000000000 r13=00000000000000c0
r14=0000000000000000 r15=000000000040a685
--- snip ---
Problem is the assembly wrapper for 'cpuid'
https://source.winehq.org/git/wine.git/blob/4a8483044ea346e09b4f2769fd1f869a6e4533f6:/programs/wineboot/wineboot.c#l188
--- snip ---
188 extern void do_cpuid( unsigned int ax, unsigned int *p );
189 #if defined(_MSC_VER)
190 void do_cpuid( unsigned int ax, unsigned int *p )
191 {
192 __cpuid( p, ax );
193 }
194 #elif defined(__i386__)
195 __ASM_GLOBAL_FUNC( do_cpuid,
196 "pushl %esi\n\t"
197 "pushl %ebx\n\t"
198 "movl 12(%esp),%eax\n\t"
199 "movl 16(%esp),%esi\n\t"
200 "cpuid\n\t"
201 "movl %eax,(%esi)\n\t"
202 "movl %ebx,4(%esi)\n\t"
203 "movl %ecx,8(%esi)\n\t"
204 "movl %edx,12(%esi)\n\t"
205 "popl %ebx\n\t"
206 "popl %esi\n\t"
207 "ret" )
208 #elif defined(__x86_64__)
209 __ASM_GLOBAL_FUNC( do_cpuid,
210 "pushq %rbx\n\t"
211 "movl %edi,%eax\n\t"
212 "cpuid\n\t"
213 "movl %eax,(%rsi)\n\t"
214 "movl %ebx,4(%rsi)\n\t"
215 "movl %ecx,8(%rsi)\n\t"
216 "movl %edx,12(%rsi)\n\t"
217 "popq %rbx\n\t"
218 "ret" )
219 #else
220 void do_cpuid( unsigned int ax, unsigned int *p )
221 {
222 FIXME("\n");
223 }
224 #endif
...
249 static void get_identifier( WCHAR *buf, size_t size, const WCHAR *arch )
250 {
251 static const WCHAR fmtW[] = {'%','s',' ','F','a','m','i','l','y','
','%','u',' ','M','o','d','e','l',
252 ' ','%','u','
','S','t','e','p','p','i','n','g',' ','%','u',0};
253 unsigned int regs[4] = {0, 0, 0, 0}, family, model, stepping;
254
255 do_cpuid( 1, regs );
256 model = get_model( regs[0], &stepping, &family );
257 swprintf( buf, size, fmtW, arch, family, model, stepping );
258 }
--- snip ---
There are other crashes as well, they need to be treated separately.
I think the release procedure should be changed that last-day changes need to
pass at least a basic test, i.e. creating/updating WINEPREFIX and maybe running
some winetricks recipes.
$ wine --version
wine-4.12
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