32-bit GLX (nvidia) not working after update, unless running with strace
TLDR: using binutils-2.42 to compile glibc-multilib on slackware isn't compatible with the 32-bit nvidia binary libGLX_nvidia. If binutils-2.41 is used to compile glibc-multilib then everything is ok. Also copying ld-2.39.so from a slackware-current 32-bit system breaks libGLX_nvidia in the same way (but libGLX_mesa is ok).
I did upgrade-all on slackware64-current and restarted the PC since it also updated glibc. Now 32-bit GLX things segfault unless I run them with strace. I have recompiled the nvidia-kernel and nvidia-driver 535.154.05_multilib packages. Also upgraded mesa-compat32 by using convertpkg on the mesa-24.0.0-i586 package. I would have tried downgrading glibc back to 2.38_multilib but there doesn't seem to be anywhere to download older versions from. Anything else I can try? The backtrace from /usr/bin/32/glxinfo is: Code:
Program terminated with signal SIGSEGV, Segmentation fault. |
Hrm. I got that, too. But the 32-bit vkcube works, as does a 32-bit WINE game. Does anything else that's 32-bit break for you?
ETA: Steam segfaults for me. I tried to reset it, and gets to about this line and crashes: "steam.sh[5893]: Can't find 'steam-runtime-check-requirements'" glxgears is also broken for me. LDD isn't showing anything missing, though. |
It is only 32 bit glx things that segfault for me. I just tested vkcube and that works ok.
It was actually when running steam I first noticed the problem :) I got steam working last night by running it as: Code:
DEBUGGER="strace -o/dev/null" steam |
I've reinstalled (completely) nvidia drivers (instead of just using -K). (Patched to work with the 6.6.15 kernel.), 535.154.05. I tried the old kernel, too, thinking it might be the patch causing it.
I've upgraded mesa for 32-bit (thinking there was a mismatch), ditto for SDL2. I've tried a completely new user. Steam is apparently working for Chrisretusn: https://www.linuxquestions.org/quest...ml#post6481208 |
I wonder if it's something to do with nvidia 535. Chrisretus seems to be using nvidia driver 470.
I will have to try building nvidia 545 or 550 and see if they work. |
Nope. I just built nvidia-driver-550.40.07_multilib but still get the segfault with glx* programs.
|
Quote:
|
I guess it is something to do with multilib since only the 32bit versions are broken. Maybe some more of the packages need recompiling against glibc-2.39. It seems to be /usr/lib/libGLX.so.0 where the problem is, and that is the libglvnd-compat32-1.7.0 package.
edit: Just recompiled libglvnd but that doesn't fix it. |
Quote:
|
Removed
|
I think that glvnd just calls whatever the real libGLX is on the system, and it looks like when trying to load the nvidia libGLX it is running into the problem.
You can tell libglvnd to use a different vendor GLX using the __GLX_VENDOR_LIBRARY_NAME env var. This works: Code:
__GLX_VENDOR_LIBRARY_NAME=mesa /usr/bin/32/glxinfo This doesn't: Code:
__GLX_VENDOR_LIBRARY_NAME=nvidia /usr/bin/32/glxinfo Code:
__GLX_VENDOR_LIBRARY_NAME=nvidia strace -o/dev/null /usr/bin/32/glxinfo edit: I just tried changing the symlink /usr/lib/libGLX_nvidia.so.0 to point to libGLX_mesa.so.0.0.0 and then glxinfo works using the "nvidia" vendor. So we know it is finding the nvidia GLX library OK, it's just crashing when trying to load it. |
From a reddit thread.
Quote:
Quote:
|
Quote:
|
Quote:
Code:
d/nv-codec-headers-12.1.14.0-x86_64-1.txz: Added. Otherwise, I'm waiting for the official multilib refresh. (Should be Real Soon Now) I know Chrisretusn is more current than we are, and there could be something we need an update on that has been updated since Jan. 5. It shouldn't matter, I know, but weird library errors sometimes happen when multilib gets stale. |
Quote:
Everything else 32-bit seems to be fine, including vkcube, so I don't think it is a problem with multilib. Since libglvnd works OK with the Mesa 32-bit libs, it looks more like the nvidia libGLX isn't compatible with glibc-2.39 and so when libglvnd tries to dlopen it, it segfaults. Can't see any mention of it on the nvidia forums though. |
All times are GMT -5. The time now is 06:27 AM. |