TheGreatMcPain / TheGreatMcPain-overlay

My Personal Gentoo Overlay (mirror)
https://gitlab.com/TheGreatMcPain/TheGreatMcPain-overlay
GNU General Public License v2.0
8 stars 4 forks source link

wine-staging: QA Notice: Package triggers severe warnings #2

Closed telans closed 4 years ago

telans commented 4 years ago

Round 2

QA Notice: Package triggers severe warnings which indicate that it
*            may exhibit random runtime failures.
* /var/tmp/portage/app-emulation/wine-staging-5.6-r1/work/wine-9999/include/winbase.h:2855:12: warning: 'strcpy' offset 10 from the object at 'pdata' is out of the bounds of referenced subobject 'szName' with type 'CHAR[1]' {aka 'char[1]'} at offset 10 [-Warray-bounds]
* /var/tmp/portage/app-emulation/wine-staging-5.6-r1/work/wine-9999/programs/winemenubuilder/winemenubuilder.c:2936:14: warning: array subscript -1 is outside array bounds of 'WCHAR[1024]' {aka 'short unsigned int[1024]'} [-Warray-bounds]
* /var/tmp/portage/app-emulation/wine-staging-5.6-r1/work/wine-9999/include/winbase.h:2855:12: warning: 'strcpy' offset 10 from the object at 'pdata' is out of the bounds of referenced subobject 'szName' with type 'CHAR[1]' {aka 'char[1]'} at offset 10 [-Warray-bounds]

These aren't all this issues that QA brings up, however I have noticed these exact ones for every wine build I have done (gcc/mingw/stable/staging/staging-9999) and I'm fairly sure it's the cause of a crash I am dealing with for a program.

Would you happen to have seen this? If so, I assume it's not actually all that important?

Cheers

TheGreatMcPain commented 4 years ago

I've seen it, but I also see it in alot of other software too. It's just a side effect of using GentooLTO. Other than that I haven't had any major crashes with wine outside of virtual desktop which was fixed via *FLAGS-="${IPAPTA}".

You may want to try *FLAGS+=-fno-avx to see if that clears up your application's crash though.

telans commented 4 years ago

You may want to try *FLAGS+=-fno-avx to see if that clears up your application's crash though.

Wow. I think it did, works with wine-staging git master now too, thanks!

Is AVX known to cause problems? I haven't seen any warnings about it

TheGreatMcPain commented 4 years ago

I know DXVK (at least the winelib version) would crash if -march=native is used. Turns out it has to do with AVX.

If I can find it I'll put a link to the bug report on it.

TheGreatMcPain commented 4 years ago

Found some bug reports related to march=native and AVX

https://bugs.winehq.org/show_bug.cgi?id=45289 https://bugs.winehq.org/show_bug.cgi?id=43516

telans commented 4 years ago

Actually I don't believe that worked (nor -mno-avx which I think you meant). It just seems like blind luck whether a build works with the program or not. I had a working version today, rebuilt with everything the same and it just crashes no matter what. I don't suppose you couldn't give the program a try? Would be a big help: https://www.ti.com/tool/TINA-TI Nevermind looks like you need a login to download from there :(

I've tried updating and rolling back the staging/wine git repo to a commit where I know it worked yesterday as well as trying pure 32/64bit wine with no luck. Looks like I might just have to trial and error until I get a working version, duplicate the ebuild and leave it alone in eselect wine forever. Any ideas?

Cheers

TheGreatMcPain commented 4 years ago

Can you post the terminal output of the program crashing?

telans commented 4 years ago
001d:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\wineusb": c0000142
000f:fixme:service:scmdatabase_autostart_services Auto-start service L"wineusb" failed to start: 1114
0025:fixme:mountmgr:harddisk_ioctl Unsupported ioctl 4d004 (device=4 access=3 func=401 method=0)
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
0009:err:ole:TLB_ReadTypeLib Loading of typelib L"" failed with error 5
0009:err:ole:CoRevokeClassObject COM was not initialized
wine: Unhandled exception 0x0eedfade in thread 9 at address 7B00E188 (thread 0009), starting debugger...

I notice the wineusb error while the program is working, so I don't believe that is the cause. Same with read access is denied.

It appears 0x0eedfade is related to "Delphi", but I haven't seen any related wine bugs specifically related to fixing the error issue. I might file a wine bug to see if anyone can figure it out. Cheers

TheGreatMcPain commented 4 years ago

I'm guessing the program is written in pascal based on the Delphi reference.

Have you looked at WineHQ?

It needs to be updated. I'll see if I can get it working.

Also check this out.

telans commented 4 years ago

Also check this out.

I'm able to run the installer fine without any issues "Tina90-TIen.exe", and Crossover lists it as working too. I do have a working version of wine for TINA on my Arch partition I'm switching over from (wine-tkg-git). Perhaps I might look at installing that build from makepkg on here.

That was made with the same flags on Arch, too. The only change I can account for now is patching cross/binutils amd enabling posix threads for mingw. I'll try with a clean toolchain and see if it helps.

TheGreatMcPain commented 4 years ago

Does it crash as soon as it tries to load?

I just got it installed, and it started up just fine. I'm currently using my wine-staging-5.6 ebuild which is technically lutris-fshack-5.6

The first time I launched it the schematic symbols wouldn't render. They did show up the second time I launched TINA.EXE though.

telans commented 4 years ago

Yeah no gui or anything, just immediately crashes. That makes me laugh, working on the first try haha. I'll give that ebuild a go once the toolchain is finished building. Cheers

telans commented 4 years ago
telans@genbox ~ $ wine .wine/drive_c/Program\ Files\ \(x86\)/DesignSoft/Tina\ 9\ -\ TI/TINA.EXE
000b:fixme:winediag:__wine_start_process Wine TkG 5.6 is a testing version containing experimental patches.
000b:fixme:winediag:__wine_start_process Please don't report bugs about it on winehq.org and use https://github.com/Tk-Glitch/PKGBUILDS/issues instead.
0025:fixme:mountmgr:harddisk_ioctl Unsupported ioctl 4d004 (device=4 access=3 func=401 method=0)
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
0009:err:ole:TLB_ReadTypeLib Loading of typelib L"" failed with error 5
0009:err:ole:CoRevokeClassObject COM was not initialized
wine: Unhandled exception 0x0eedfade in thread 9 at address 7B00E1A8 (thread 0009), starting debugger...

This is with a fresh toolchain with the patches and thread changes, using wine-staging-5.6-r1 along with a fresh wine prefix.

The only thing I imagine that's different between my build and yours would be -march=haswell being passed to mingw. I'll see how it goes without it. Thank you for testing this, I really do appreciate it

What USE flags do you have enabled? I'll mirror those too

TheGreatMcPain commented 4 years ago

This is what I have in my package.use

app-emulation/wine-staging realtime sdl2 netapi gstreamer vkd3d custom-cflags faudio vaapi mingw

This is what's in my make.conf

USE="libglvnd pulseaudio xinerama realtime vulkan vdpau acl opencl wavpack x264 x265 fontforge zsh-completion unicode"

My cpu is an ivybridge 3570K, and I use -march=native.

Just to be sure have you tried making a prefix with WINEARCH=win32?

TheGreatMcPain commented 4 years ago

I was looking at the error you posted and noticed this liine.

wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.

Have you tried going into winecfg's Drives tab, and removing drive Z:? (Also try removing all drives except for C:)

telans commented 4 years ago

No dice with WINEARCH=win32, removing the Z: drive results in loading errors as that's my root drive (same with removing it before installing TINA):

002b:err:module:import_dll Library bcbsmp60.bpl (which is needed by L"unix\\home\\telans\\.wine\\drive_c\\Program Files\\DesignSoft\\Tina 9 - TI\\vhdl_dll2.dll") not found
002b:err:module:import_dll Library bcbsmp60.bpl (which is needed by L"unix\\home\\telans\\.wine\\drive_c\\Program Files\\DesignSoft\\Tina 9 - TI\\vhdl_dll2.dll") not found
002b:err:module:import_dll Library vhdl_dll2.dll (which is needed by L"unix\\home\\telans\\.wine\\drive_c\\Program Files\\DesignSoft\\Tina 9 - TI\\TINA.EXE") not found
002b:err:module:LdrInitializeThunk Importing dlls for L"\\\\?\\unix\\home\\telans\\.wine\\drive_c\\Program Files\\DesignSoft\\Tina 9 - TI\\TINA.EXE" failed, status c0000135

I'll get back to you whether change my use flags fixes it. Cheers

EDIT: Shouldn't wine be avoiding "Drive Z" if it can, and instead use "C:"?

telans commented 4 years ago

5.6 build with the same USE flags apart from net-api, opencl, & vkd3d. I assume you use the default GentooLTO cflags?

The installer seems to be crashing at the end now, but TINA itself is reporting a different error which looks to be even less helpful:

telans@genbox ~ $ wine .wine/drive_c/Program\ Files\ \(x86\)/DesignSoft/Tina\ 9\ -\ TI/TINA.EXE
000b:fixme:winediag:__wine_start_process Wine TkG 5.6 is a testing version containing experimental patches.
000b:fixme:winediag:__wine_start_process Please don't report bugs about it on winehq.org and use https://github.com/Tk-Glitch/PKGBUILDS/issues instead.
0025:fixme:mountmgr:harddisk_ioctl Unsupported ioctl 4d004 (device=4 access=3 func=401 method=0)
wine: Unhandled page fault on read access to 043FC938 at address 00404E82 (thread 0009), starting debugger...

I'm going to rebuild with -mno-avx, then remove custom-cflags if that doesn't work. Even if it doesn't work after that, I think it may be time to give up on getting this program running with wine.

I have an last resort idea if you'd be willing, if none of that works. Would you mind using quickpkg on a wine build you have working with TINA and send it over somehow? It appears that there are no differences between the two marches: diff <(gcc -march=haswell -Q --help=target) <(gcc -march=ivybridge -Q --help=target). Cheers

EDIT: -mno-avx fixes the installation crash, not the program crash

TheGreatMcPain commented 4 years ago

I forgot to mention that I have

app-emulation/wine* *FLAGS+=-mno-avx *FLAGS-="${IPAPTA}"

in my package.cflags.

(to be honest I should just add -mno-avx to my ebuild, but I don't think bobwya does that in their ebuilds.)

I'll rebuild my wine-staging without net-api, opencl, and vkd3d. I'll also use -march=x86-64, then make sure my build works before quickpkg it.

telans commented 4 years ago

Thank you very much. Unfortunately adding *FLAGS-="${IPAPTA}" still didn't change anything for me. There must be something going on but it's sure a mystery. What's your glibc version?

TheGreatMcPain commented 4 years ago

My glibc is 2.31-r3.

TheGreatMcPain commented 4 years ago

Here you go. wine-staging-5.6-r1.tbz2

telans commented 4 years ago

Thank you! Installed perfectly fine, however I'm just running into:

wine: failed to initialize: libunwind.so.1: cannot open shared object file: No such file or directory

Which is strange, because neither version of sys-libs/libunwind provides libunwind.so.1

Anyways, this isn't your issue anymore and should be easily fixed so thank you for all your help.

TheGreatMcPain commented 4 years ago

I forgot I have sys-libs/llvm-libunwind installed instead of sys-libs/libunwind.

You should be able to temporarily replace sys-libs/libunwind with sys-libs/llvm-libunwind, to get it working.

telans commented 4 years ago

wine: Unhandled exception 0x0eedfade in thread 9 at address 7B00ED57 (thread 0009), starting debugger...

Well, it's definitely a me problem. I am so stumped and clueless

TheGreatMcPain commented 4 years ago

Well hopefully you'll find a fix. I know wine can be pretty picky.

There was this time where I was trying to get Origin to work, but it kept crashing. It turns out the Windows fonts that I installed from my Win10 partition was causing Origin to crash.

telans commented 4 years ago

What kernel are you on? I might give genkernel a go, but I don't even know if that's likely to cause a difference

TheGreatMcPain commented 4 years ago

I'm using liquorix-sources-5.6.15_p2 with a custom config.

I also use sakaki's buildkernel to update the kernel which uses genkernel for the initramfs.

telans commented 3 years ago

@TheGreatMcPain, I have a question if you wouldn't mind. Do you build your glibc/other base libraries with custom-cflags? (lto and such). I'm having trouble with Proton through Steam, where everything crashes with wine: unhandled exception ... no matter what version or if I use a tkg/ge proton version. I'm thinking it would have to be something low level like that if multiple different builds crash the same, as it occurs regardless of using the steam runtime or not. Cheers


Well that wasn't it - I'm pretty stumped

TheGreatMcPain commented 3 years ago

I do use glibc with custom-cflags, but it hasn't caused any issues so far.

Then again I build Proton locally which seems to get around some of the known issues with the newest version of Proton.

telans commented 3 years ago

Well I built Proton locally through proton-tkg, yet still the same Unhandled exception: 0x20474343 in 64-bit code (0x000000007b011fbe). in games which should be working flawlessly. I guess it's time to make an arch install for games, as ridiculous as that sounds

telans commented 3 years ago

I probably should have updated vulkan-loader-9999 once in the last couple months, that was it. I've spent quite a few hours on this for it to be that simple holy shit

It's always user error

TheGreatMcPain commented 3 years ago

There's been a few times where I thaught about having an arch install as a backup incase I need to debug something in Gentoo.

For example there was a time when Origin kept crashing until I tested on Arch to find that it was because I installed Windows 10 fonts onto my system.