[Bug 27559] ImgBurn crashes on startup when run with WinVer >= Vista, needs shell32.SHGetKnownFolderIDList()

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Nov 21 15:43:56 CST 2011


http://bugs.winehq.org/show_bug.cgi?id=27559

--- Comment #11 from Anastasius Focht <focht at gmx.net> 2011-11-21 15:43:56 CST ---
Hello Andy,

--- quote ---
I was a bit hasty. I got the reply, which says that -fno-omit-frame-pointer is
present for the 1.3.33 build. Should this report be extracted to a separate bug
then?
--- quote ---

I downloaded the openSUSE 32 bit Wine RPM "wine-32bit-1.3.33-2.1.i586.rpm" from
http://software.opensuse.org/search?q=wine&baseproject=openSUSE%3A12.1 and
extracted everything "offline" using "rpm2cpio wine-32bit-1.3.33-2.1.i586.rpm |
cpio -vid"
Disassembly of "rpcrt4.dll.so" shows the frame pointer is abused everywhere
which explains the crash.

Fortunately the build logs are also available online:

https://build.opensuse.org/package/rawlog?arch=i586&package=wine&project=Emulators%3AWine&repository=openSUSE_12.1

--- snip ---
gcc -c -I. -I. -I../../include -I../../include  -D__WINESRC__ -D_RPCRT4_
-DCOM_NO_WINDOWS_H -DMSWMSG -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing
-Wdeclaration-after-statement -Wempty-body -Wstrict-prototypes -Wtype-limits
-Wunused-but-set-parameter -Wwrite-strings -fno-omit-frame-pointer
-Wpointer-arith -Wlogical-op -I/usr/include/freetype2  -DLDAP_DEPRECATED=1
-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector -funwind-tables -fasynchronous-unwind-tables -g
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0  -o rpc_server.o rpc_server.c
--- snip ---

"-fno-omit-frame-pointer" is passed but overridden later with
"-fomit-frame-pointer".
Hence all binaries are compiled as if default gcc 4.6.x setting is used,
causing app breakage.

The problematic .spec file snippet:

--- snip ---
%ifarch %ix86
# Steam hates it.
export RPM_OPT_FLAGS=`echo %{optflags}|sed -e 's/-fomit-frame-pointer//'`
%endif

CFLAGS="-DLDAP_DEPRECATED=1 %{optflags}" \ 
...
--- snip ---

corresponding output:

--- snip ---
++ echo -fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector -funwind-tables -fasynchronous-unwind-tables -g
++ sed -e s/-fomit-frame-pointer//
+ export 'RPM_OPT_FLAGS= -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector -funwind-tables -fasynchronous-unwind-tables -g'
+ RPM_OPT_FLAGS=' -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector -funwind-tables -fasynchronous-unwind-tables -g'
+ CFLAGS='-DLDAP_DEPRECATED=1 -fomit-frame-pointer -fmessage-length=0 -O2 -Wall
-D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables
-fasynchronous-unwind-tables -g'
--- snip ---

%optflags vs. $RPM_OPT_FLAGS

All openSUSE 12.x 32 bit Wine builds had this problem from the beginning.

Anyway this is a packaging bug, not Wine.

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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