https://bugs.winehq.org/show_bug.cgi?id=45367
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
following bug 45199 I have built Wine 3.11 (aka Wine for Workgroups) with CFLAGS -O2 and Gcc 8.x (Fedora 28).
The app starts fine for me (shows some dialog/property pages).
--- snip --- $ gcc -v Using built-in specs. COLLECT_GCC=/usr/bin/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-redhat-linux Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 8.1.1 20180502 (Red Hat 8.1.1-1) (GCC) --- snip ---
--- snip --- $ wine --version wine-3.11 --- snip ---
Proof that my Wine build has GOT/PIC register load code emitted at function entry:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Graphics Rules Maker/bin
$ winedbg ./GraphicsRulesMakerUi.exe
WineDbg starting on pid 0032 start_process () at /home/focht/projects/wine/mainline-src/dlls/kernel32/process.c:1099
0x000000007b462885 start_process+0x135 [/home/focht/projects/wine/mainline-src/dlls/kernel32/process.c:1099] in kernel32: movl 0xffffff24(%ebp),%esi 1099 ExitThread( call_process_entry( peb, entry ));
Wine-dbg>disas RtlAllocateHeap
0x000000007bc4f4b0 RtlAllocateHeap [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1670] in ntdll: call 0x000000007bc42a9d __x86.get_pc_thunk.ax in ntdll 0x000000007bc4f4b5 RtlAllocateHeap+0x5 [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1670] in ntdll: addl $596811,%eax 0x000000007bc4f4ba RtlAllocateHeap+0xa [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1666] in ntdll: leal 0x4(%esp),%ecx 0x000000007bc4f4be RtlAllocateHeap+0xe [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1666] in ntdll: andl $-16,%esp 0x000000007bc4f4c1 RtlAllocateHeap+0x11 [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1666] in ntdll: pushl 0xfffffffc(%ecx) 0x000000007bc4f4c4 RtlAllocateHeap+0x14 [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1666] in ntdll: pushl %ebp 0x000000007bc4f4c5 RtlAllocateHeap+0x15 [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1666] in ntdll: movl %esp,%ebp 0x000000007bc4f4c7 RtlAllocateHeap+0x17 [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1666] in ntdll: pushl %edi 0x000000007bc4f4c8 RtlAllocateHeap+0x18 [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1666] in ntdll: pushl %esi 0x000000007bc4f4c9 RtlAllocateHeap+0x19 [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1666] in ntdll: pushl %ebx ...
Wine-dbg>b RtlAllocateHeap Breakpoint 1 at 0x000000007bc4f4b0 RtlAllocateHeap [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1670] in ntdll
Wine-dbg>c Stopped on breakpoint 1 at 0x000000007bc4f4b0 RtlAllocateHeap [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1670] in ntdll RtlAllocateHeap () at /home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1670 1670 HEAP *heapPtr = HEAP_GetPtr( heap );
Wine-dbg>si 0x000000007bc42a9d __x86.get_pc_thunk.ax in ntdll: movl 0x0(%esp),%eax Wine-dbg>si 0x000000007bc42aa0 __x86.get_pc_thunk.ax+0x3 in ntdll: ret Wine-dbg>si 0x000000007bc4f4b5 RtlAllocateHeap+0x5 [/home/focht/projects/wine/mainline-src/dlls/ntdll/heap.c:1670] in ntdll: addl $596811,%eax 1670 HEAP *heapPtr = HEAP_GetPtr( heap );
... --- snip ---
There is something different going on here, maybe ArchLinux specific.
Regards