LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 02-03-2024, 04:25 PM   #1
af7567
Member
 
Registered: Nov 2012
Posts: 293

Rep: Reputation: 106Reputation: 106
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.
#0  0xf7f052b3 in _dl_open () from /lib/ld-linux.so.2
#1  0xf7894e0b in dlopen_doit () from /lib/libc.so.6
#2  0xf7ef85bb in _dl_catch_exception () from /lib/ld-linux.so.2
#3  0xf7ef86ef in _dl_catch_error () from /lib/ld-linux.so.2
#4  0xf7894852 in _dlerror_run () from /lib/libc.so.6
#5  0xf7894eee in dlopen@GLIBC_2.1 () from /lib/libc.so.6
#6  0xf7a8c073 in ?? () from /usr/lib/libGLX.so.0
#7  0xf7a8d5e8 in ?? () from /usr/lib/libGLX.so.0
#8  0xf7a866a6 in glXChooseVisual () from /usr/lib/libGLX.so.0
#9  0x08049409 in ?? ()
#10 0xf7824b52 in __libc_start_call_main () from /lib/libc.so.6
#11 0xf7824c23 in __libc_start_main_impl () from /lib/libc.so.6
#12 0x08049dc8 in ?? ()

Last edited by af7567; 02-05-2024 at 07:11 PM. Reason: added TLDR
 
Old 02-03-2024, 08:38 PM   #2
garpu
Senior Member
 
Registered: Oct 2009
Distribution: Slackware
Posts: 1,537

Rep: Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899
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.

Last edited by garpu; 02-03-2024 at 10:19 PM.
 
Old 02-04-2024, 06:51 AM   #3
af7567
Member
 
Registered: Nov 2012
Posts: 293

Original Poster
Rep: Reputation: 106Reputation: 106
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
 
1 members found this post helpful.
Old 02-04-2024, 07:45 AM   #4
garpu
Senior Member
 
Registered: Oct 2009
Distribution: Slackware
Posts: 1,537

Rep: Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899
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
 
Old 02-04-2024, 07:53 AM   #5
af7567
Member
 
Registered: Nov 2012
Posts: 293

Original Poster
Rep: Reputation: 106Reputation: 106
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.
 
Old 02-04-2024, 08:03 AM   #6
af7567
Member
 
Registered: Nov 2012
Posts: 293

Original Poster
Rep: Reputation: 106Reputation: 106
Nope. I just built nvidia-driver-550.40.07_multilib but still get the segfault with glx* programs.
 
Old 02-04-2024, 08:05 AM   #7
garpu
Senior Member
 
Registered: Oct 2009
Distribution: Slackware
Posts: 1,537

Rep: Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899
Quote:
Originally Posted by af7567 View Post
Nope. I just built nvidia-driver-550.40.07_multilib but still get the segfault with glx* programs.
So could possibly be a multilib issue? (Something needs to sync)
 
Old 02-04-2024, 08:26 AM   #8
af7567
Member
 
Registered: Nov 2012
Posts: 293

Original Poster
Rep: Reputation: 106Reputation: 106
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.

Last edited by af7567; 02-04-2024 at 08:31 AM.
 
Old 02-04-2024, 08:29 AM   #9
garpu
Senior Member
 
Registered: Oct 2009
Distribution: Slackware
Posts: 1,537

Rep: Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899
Quote:
Originally Posted by af7567 View Post
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.
What's weird is that it hasn't been changed since September, though. (And why does the 64-bit one work?)
 
Old 02-04-2024, 08:54 AM   #10
Petri Kaukasoina
Senior Member
 
Registered: Mar 2007
Posts: 1,791

Rep: Reputation: 1469Reputation: 1469Reputation: 1469Reputation: 1469Reputation: 1469Reputation: 1469Reputation: 1469Reputation: 1469Reputation: 1469Reputation: 1469
Removed

Last edited by Petri Kaukasoina; 02-04-2024 at 08:57 AM.
 
Old 02-04-2024, 09:04 AM   #11
af7567
Member
 
Registered: Nov 2012
Posts: 293

Original Poster
Rep: Reputation: 106Reputation: 106
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
(tested with 32-bit mesa 24 and 23.3.2)

This doesn't:
Code:
__GLX_VENDOR_LIBRARY_NAME=nvidia /usr/bin/32/glxinfo
But this does:
Code:
__GLX_VENDOR_LIBRARY_NAME=nvidia strace -o/dev/null /usr/bin/32/glxinfo
So it looks like a problem with either the nvidia driver or libglvnd, but only for 32-bit libs.

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.

Last edited by af7567; 02-04-2024 at 09:20 AM.
 
Old 02-04-2024, 09:19 AM   #12
Pixxt
Member
 
Registered: May 2008
Distribution: Slackware, Debian,
Posts: 284

Rep: Reputation: 185Reputation: 185
From a reddit thread.

Quote:
Sounds weird, I know, but do you have 'Remember Login' checked? Uncheck it and try again.

I had to manually change that setting by editing the vdf file but just disabling that allows me to open Steam again.
Quote:
You need to uncheck "Remember Password" in Steam login or .steam/registry.vdf
 
Old 02-04-2024, 09:35 AM   #13
garpu
Senior Member
 
Registered: Oct 2009
Distribution: Slackware
Posts: 1,537

Rep: Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899
Quote:
Originally Posted by Pixxt View Post
From a reddit thread.
This isn't that problem...it's any 32-bit GLX/OpenGL program not running unless a debugger is also running.
 
Old 02-04-2024, 09:39 AM   #14
garpu
Senior Member
 
Registered: Oct 2009
Distribution: Slackware
Posts: 1,537

Rep: Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899Reputation: 899
Quote:
Originally Posted by af7567 View Post
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.
Wild-assed guess, but:

Code:
d/nv-codec-headers-12.1.14.0-x86_64-1.txz: Added.
       Needed to build support for nvidia hardware decoders/encoders on newer GPUs.
Was added on January 29th. Could we need it on the 32-bit end of things?

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.

Last edited by garpu; 02-04-2024 at 09:50 AM.
 
Old 02-04-2024, 10:42 AM   #15
af7567
Member
 
Registered: Nov 2012
Posts: 293

Original Poster
Rep: Reputation: 106Reputation: 106
Quote:
Originally Posted by garpu View Post
Wild-assed guess, but:

Code:
d/nv-codec-headers-12.1.14.0-x86_64-1.txz: Added.
       Needed to build support for nvidia hardware decoders/encoders on newer GPUs.
That package only contains header files, no binaries or libraries so won't need a compat32 version.

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.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Suse Tumbleweed: After update Chromium/ various games not working. GLX issue? spamhippy SUSE / openSUSE 4 06-28-2020 07:54 PM
64 bit JVM crash on RHEL 5.5 64 bit ( JRE 1.6 update 23 ) - strace attached bangarrajuv Red Hat 1 07-14-2011 10:00 AM
Can't load the nvidia glx (may be lacking \etc\rc.d\init.d\nvidia-glx) Starchild Fedora 1 07-27-2007 06:44 AM
nvidia-glx-legacy & GLX errors Codegen Ubuntu 5 03-11-2007 03:18 PM
(II) [GLX]: Initializing GLX extension - X wont go hydro Linux - Software 3 02-20-2003 06:12 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 01:16 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration