Summary: | app-emulation/wine-staging-8.5 wine64 could not load ntdll.so: undefined symbol: _ULx86_64_step with llvm-libunwind | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | tigrmango |
Component: | Current packages | Assignee: | Wine Maintainers <wine> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | ionen |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
Build log
emerge --info \=app-emulation/wine-staging-8.5 emerge -pqv \=app-emulation/wine-staging-8.5 |
Description
tigrmango
2023-04-08 04:44:36 UTC
Created attachment 859684 [details]
Build log
Created attachment 859685 [details]
emerge --info \=app-emulation/wine-staging-8.5
Haven't tried exact same setup yet but can't reproduce so far (I always use llvm-libunwind as-is and my ntdll.so is linked with it, tried with both clang and gcc and wine64 works fine) But pretty sure this is where this is going wrong: checking for unw_step... no checking for unw_step in libunwind... yes As far as I can tell the first unw_step shouldn't be "no" when using clang (it's normal when using gcc) and this is causing it to fallback to using `-static-libgcc -lunwind` which probably doesn't quite work with this clang setup. build64/config.log may or may not have more info fwiw may want to try without -rtlib=compiler-rt I use compiler-rt as well but through USE=default-compiler-rt on clang-common instead: [ebuild R ] sys-devel/clang-common-16.0.1 USE="default-compiler-rt default-lld llvm-libunwind -default-libcxx -hardened -stricter -verify-sig" Created attachment 859686 [details]
emerge -pqv \=app-emulation/wine-staging-8.5
Tried to compile without -rtlib=compiler-rt, nothing changed. Also, the error isn't present in wine-vanilla-8.5. Also it still does the unw_step thing in config phase Well, probably figured why the first unw_step is failing for you but it doesn't seem to be an issue (happens when USE=-default-compiler-rt on clang-common, but setting it or not doesn't seem to break wine64 either way for me -- albeit I do suggest to enable that if you're using compiler-rt anyway). So still can't reproduce... tried to semi-copy your emerge --info by having: AR="llvm-ar" CC="clang" CFLAGS="-O2 -pipe -march=native -ftree-vectorize -fstack-protector-strong" CXX="clang++" CXXFLAGS="-O2 -pipe -march=native -ftree-vectorize -fstack-protector-strong" LDFLAGS="-Wl,-O2,--as-needed -fuse-ld=lld -rtlib=compiler-rt" NM="llvm-nm" RANLIB="llvm-ranlib" and same USE on wine-staging: [ebuild R ] app-emulation/wine-staging-8.5 USE="X alsa cups fontconfig gecko gstreamer llvm-libunwind mingw mono nls opengl pulseaudio sdl ssl truetype udev udisks unwind usb v4l vulkan wayland xcomposite -capi -crossdev-mingw -custom-cflags -debug -dos -gphoto2 -kerberos -netapi -opencl -osmesa -pcap -perl -samba -scanner (-selinux) -smartcard -xinerama" ABI_X86="64 -32" but staging-8.5's wine64 still works (tried a few basic things like `wine64 notepad`, and `winecfg`). Sorry, I have no idea what may be different for you. fwiw I haven't tried with a stable system, but it worked fine there a few months ago when I last tried and wouldn't "think" it'd change anything. I also haven't tried with bashrc-mv (that you seem to be using) which sometime cause unexpected issues. If you (or anyone else affected, but haven't got other reports so far) can't figure out the cause, may want to do USE=-unwind. Don't think I can help without some way to reproduce. (note that using llvm-libunwind also isn't officially supported upstream, we're patching so it can build with it -- not that I've had problems regardless). |