https://bugs.winehq.org/show_bug.cgi?id=48861 --- Comment #3 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, the situation has improved with recent changes. As already mentioned in my comment #0 it still doesn't work in all cases (compilers and optimization strategies). * https://source.winehq.org/git/wine.git/commitdiff/d01d3b749d7d99c75f29396fd7... ("kernelbase: Use command_lineW for GetCommandLineW.") * https://source.winehq.org/git/wine.git/commitdiff/8a1933bbe40b67d22d919861de... ("kernelbase: Remove DECLSPEC_HOTPATCH for GetCommandLine[AW].") Thanks Myah === GCC 10.2 (Fedora 32): 32-bit works (-gdwarf-2 -gstrict-dwarf -fno-omit-frame-pointer -g -O2) --- snip -- $ gdb mainline-install-x86_64/lib/wine/kernelbase.dll.so -batch -ex 'disassemble GetCommandLineA' Dump of assembler code for function GetCommandLineA: 0x7b070ff0 <+0>: mov 0x7b0f3708,%eax 0x7b070ff5 <+5>: ret $ gdb mainline-install-x86_64/lib/wine/kernelbase.dll.so -batch -ex 'disassemble GetCommandLineW' Dump of assembler code for function GetCommandLineW: 0x7b071000 <+0>: mov 0x7b0f3704,%eax 0x7b071005 <+5>: ret --- snip -- 64-bit doesn't work (-gdwarf-2 -gstrict-dwarf -g -O2) It generates standard function prologue with frame pointer. --- snip --- $ gdb mainline-install-x86_64/lib64/wine/kernelbase.dll.so -batch -ex 'disassemble GetCommandLineA' Dump of assembler code for function GetCommandLineA: 0x000000007b06e520 <+0>: push %rbp 0x000000007b06e521 <+1>: mov 0x80f68(%rip),%rax # 0x7b0ef490 <command_lineA> 0x000000007b06e528 <+8>: mov %rsp,%rbp 0x000000007b06e52b <+11>: and $0xfffffffffffffff0,%rsp 0x000000007b06e52f <+15>: leaveq 0x000000007b06e530 <+16>: retq $ gdb mainline-install-x86_64/lib64/wine/kernelbase.dll.so -batch -ex 'disassemble GetCommandLineW' Dump of assembler code for function GetCommandLineW: 0x000000007b06e540 <+0>: push %rbp 0x000000007b06e541 <+1>: mov 0x80f40(%rip),%rax # 0x7b0ef488 <command_lineW> 0x000000007b06e548 <+8>: mov %rsp,%rbp 0x000000007b06e54b <+11>: and $0xfffffffffffffff0,%rsp 0x000000007b06e54f <+15>: leaveq 0x000000007b06e550 <+16>: retq --- snip --- === LLVM MinGW 10.x (PE) 32-bit doesn't work (-fno-omit-frame-pointer -gcodeview -g -O2) It generates standard function prologue with frame pointer, even though there is no stack usage at all. --- snip --- $ gdb mainline-install-x86_64/lib/wine/kernelbase.dll -batch -ex 'disassemble GetCommandLineW' Dump of assembler code for function kernelbase!GetCommandLineW: 0x7b037830 <+0>: push %ebp 0x7b037831 <+1>: mov %esp,%ebp 0x7b037833 <+3>: mov 0x7b082de0,%eax 0x7b037838 <+8>: pop %ebp 0x7b037839 <+9>: ret $ gdb mainline-install-x86_64/lib/wine/kernelbase.dll -batch -ex 'disassemble GetCommandLineA' Dump of assembler code for function kernelbase!GetCommandLineA: 0x7b037820 <+0>: push %ebp 0x7b037821 <+1>: mov %esp,%ebp 0x7b037823 <+3>: mov 0x7b082de4,%eax 0x7b037828 <+8>: pop %ebp 0x7b037829 <+9>: ret --- snip --- 64-bit works (-gcodeview -g -O2) --- snip --- $ gdb mainline-install-x86_64/lib64/wine/kernelbase.dll -batch -ex 'disassemble GetCommandLineA' Dump of assembler code for function kernelbase!GetCommandLineA: 0x000000007b040940 <+0>: mov 0x550d9(%rip),%rax # 0x7b095a20 0x000000007b040947 <+7>: retq 0x000000007b040948 <+8>: nopl 0x0(%rax,%rax,1) $ gdb mainline-install-x86_64/lib64/wine/kernelbase.dll -batch -ex 'disassemble GetCommandLineW' Dump of assembler code for function kernelbase!GetCommandLineW: 0x000000007b040950 <+0>: mov 0x550c1(%rip),%rax # 0x7b095a18 0x000000007b040957 <+7>: retq 0x000000007b040958 <+8>: nopl 0x0(%rax,%rax,1) --- snip --- $ wine --version wine-5.19-123-ge909986e6ea 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.