https://bugs.winehq.org/show_bug.cgi?id=55139
Bug ID: 55139 Summary: loader: regression - error running winecfg Product: Wine Version: 8.11 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: loader Assignee: wine-bugs@winehq.org Reporter: arusanu.bu@gmail.com Distribution: ---
The switch to PIE loader seems to affect running wine on my system. Running winecfg generates these errors: '$ winecfg wine: created the configuration directory '/home/iurt_build/.wine' 0024:err:environ:run_wineboot failed to start wineboot c00000e5 wine: could not load kernel32.dll, status c0000135'
The regression started with commit cc2cfb9b792bee681b96c5859084fd6d4d0bbed7. Reverting that commit and commit 78ed343842dcd8ffb95c416420953e121959d40d commit c55578f3a54c63084657e7d79c043b22b10df989 commit ac1761d1dae8bf114a05e28ed6886deba6c2c860 ,
allows wine 8.11 to run fine.
System: Mageia 9(cauldron), kernel-6.3.9 - x86_64., gcc-12.3.0, mingw-gcc-12.2.1 Wine specific configuration options used for x86_64/i586: ' ./configure --with-x --with-dbus --with-gstreamer --enable-win64 --with-system-dllpath=/usr/x86_64-w64-mingw32/sys-root/mingw/bin --disable-tests ./configure --with-x --with-dbus --with-gstreamer --with-system-dllpath=/usr/i586-w64-mingw32/sys-root/mingw/bin --disable-tests '
https://bugs.winehq.org/show_bug.cgi?id=55139
Rosanne DiMesio dimesio@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|loader: regression - error |loader: regression - error |running winecfg |running from a 64 bit | |wineprefix CC| |dimesio@earthlink.net Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Keywords| |regression
--- Comment #1 from Rosanne DiMesio dimesio@earthlink.net --- I'm seeing the same thing on openSUSE Leap 15.4. It only affects 64 bit wineprefixes, but it affects any app run from a 64 bit wineprefix, not just winecfg.
https://bugs.winehq.org/show_bug.cgi?id=55139
Rosanne DiMesio dimesio@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |cc2cfb9b792bee681b96c585908 | |4fd6d4d0bbed7 CC| |julliard@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=55139
--- Comment #2 from aurb arusanu.bu@gmail.com --- (In reply to Rosanne DiMesio from comment #1) Thanks for confirming it and pointing out that is a 64 bit issue.
https://bugs.winehq.org/show_bug.cgi?id=55139
David Korth gerbilsoft@gerbilsoft.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gerbilsoft@gerbilsoft.com
https://bugs.winehq.org/show_bug.cgi?id=55139
--- Comment #3 from Rosanne DiMesio dimesio@earthlink.net --- Still present in 8.13; reverting the 4 patches fixes it.
None of our Ubuntu, Debian, or Fedora users have reported this, and I haven't reverted the patches in our packages for those distros, so I'm wondering what is different about Mageia and openSUSE. Is there something that could/should be changed in the host system?
https://bugs.winehq.org/show_bug.cgi?id=55139
--- Comment #4 from David Korth gerbilsoft@gerbilsoft.com --- I'm using Gentoo and ran into the same issue.
gcc: 13.1.0-r1 i686-w64-mingw32/gcc: 13.1.0-r1 x86_64-w64-mingw32/gcc: 13.1.0-r1
CFLAGS: -O2 -pipe -march=native -mfpmath=sse -fcf-protection -gz=zstd -fgraphite-identity -floop-nest-optimize -ftree-vectorize LDFLAGS: -Wl,-O2 -Wl,--sort-common -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--build-id=sha1 -Wl,-z,pack-relative-relocs
I also have -fstack-protector-strong set system-wide, but Gentoo's wine ebuilds filter it out. LTO flags are also filtered out.
https://bugs.winehq.org/show_bug.cgi?id=55139
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=55139
--- Comment #5 from aurb arusanu.bu@gmail.com --- Thanks David, your comment pointed me to test the stack-protection that turned out to be the culprit for Mageia. Once the stack-protector have been disabled no more errors and wine stack starts and runs as expected. This may work for OpenSuse too, as it uses stack-protector option too.(i.e. -fstack-protector-strong -fstack-clash-protection)
As an example, here is what was used for compilation of "loader/preloader.c" on Mageia:
gcc -m64 -c -o loader/preloader.o loader/preloader.c -Iloader -Iinclude -D__WINESRC__ -fno-builtin -DWINE_UNIX_LIB \ -fPIE -Wall -pipe -fcf-protection=none -fno-stack-protector -fno-strict-aliasing \ -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \ -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \ -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -O2 -g -pipe -Wformat -Werror=format-security -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -Wno-error
and removing/disabling "-fstack-protector --param=ssp-buffer-size=4" worked just fine.
This looks like a well known issue not quite a regression, sorry. Fedora seems to have had this workaround for some time now. At least for Mageia this works fine. Regards.
https://bugs.winehq.org/show_bug.cgi?id=55139
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #6 from Zeb Figura z.figura12@gmail.com --- (In reply to aurb from comment #5)
This looks like a well known issue not quite a regression, sorry. Fedora seems to have had this workaround for some time now. At least for Mageia this works fine.
Wait, so did this break after cc2cfb9b7 or no? Was that test done incorrectly?
https://bugs.winehq.org/show_bug.cgi?id=55139
--- Comment #7 from Rosanne DiMesio dimesio@earthlink.net --- The OBS uses -fstack-protector-strong -fstack-clash-protection by default, and disabling that in my .spec file fixes the problem for me, too.
(In reply to Zeb Figura from comment #6)
Wait, so did this break after cc2cfb9b7 or no? Was that test done incorrectly?
I didn't do the test myself, but I can confirm that reverting the 4 patches listed in the bug description fixed the problem on openSUSE, and the problem did not exist on openSUSE before 8.11. Stack protection was already disabled on our Fedora, Ubuntu, and Debian packages to fix bug 48161, so that's why no one from those distros encountered the problem.
https://bugs.winehq.org/show_bug.cgi?id=55139
--- Comment #8 from aurb arusanu.bu@gmail.com --- (In reply to Zeb Figura from comment #6)
Wait, so did this break after cc2cfb9b7 or no? Was that test done incorrectly?
I've retested it again for commit cc2cfb9b7 only with stack-protection enabled and it does fail with somewhat different error messages but ultimately ends with:
wine: could not load kernel32.dll, status c0000135
as reported in the first comment.
https://bugs.winehq.org/show_bug.cgi?id=55139
--- Comment #9 from David Korth gerbilsoft@gerbilsoft.com --- Built wine-staging 8.14 with these flags removed:
-fcf-protection -fstack-protector-strong
and it appears to work correctly, without removing those four patches.
https://bugs.winehq.org/show_bug.cgi?id=55139
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |NOTOURBUG Status|NEW |RESOLVED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Resolving as stack-protector issue then.