LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   32-bit GLX (nvidia) not working after update, unless running with strace (https://www.linuxquestions.org/questions/slackware-14/32-bit-glx-nvidia-not-working-after-update-unless-running-with-strace-4175733503/)

af7567 02-03-2024 04:25 PM

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 ?? ()


garpu 02-03-2024 08:38 PM

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.

af7567 02-04-2024 06:51 AM

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

garpu 02-04-2024 07:45 AM

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

af7567 02-04-2024 07:53 AM

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.

af7567 02-04-2024 08:03 AM

Nope. I just built nvidia-driver-550.40.07_multilib but still get the segfault with glx* programs.

garpu 02-04-2024 08:05 AM

Quote:

Originally Posted by af7567 (Post 6481236)
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)

af7567 02-04-2024 08:26 AM

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.

garpu 02-04-2024 08:29 AM

Quote:

Originally Posted by af7567 (Post 6481242)
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?)

Petri Kaukasoina 02-04-2024 08:54 AM

Removed

af7567 02-04-2024 09:04 AM

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.

Pixxt 02-04-2024 09:19 AM

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

garpu 02-04-2024 09:35 AM

Quote:

Originally Posted by Pixxt (Post 6481262)
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.

garpu 02-04-2024 09:39 AM

Quote:

Originally Posted by af7567 (Post 6481256)
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.

af7567 02-04-2024 10:42 AM

Quote:

Originally Posted by garpu (Post 6481267)
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.

garpu 02-04-2024 10:45 AM

Quote:

Originally Posted by af7567 (Post 6481283)
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.

If you want to open a thread on the forums there, I'm game. Looks like Arch is on 2.39, but I don't know if any problems there have been reported? (Kind of waiting for multilib to sync, just to rule out any weirdness with stale libraries there.)

af7567 02-04-2024 10:53 AM

I have started a thread on the nvidia forums now at https://forums.developer.nvidia.com/...egfault/281769
So will see if any others have the same problem.

garpu 02-04-2024 10:59 AM

Quote:

Originally Posted by af7567 (Post 6481289)
I have started a thread on the nvidia forums now at https://forums.developer.nvidia.com/...egfault/281769
So will see if any others have the same problem.

OK...will post there if I'm still having problems after multilib refreshes.

Daedra 02-04-2024 11:01 AM

Just thought I would report in. I just tested this right now and I am having the same issue.

/usr/bin/32/glxgears
Code:

Segmentation fault
steam
Code:

# ------------------------------------ #

Slackware 32-bit:
Check the directory matching your Slackware version below http://www.slackware.com/~alien/slackbuilds/steamclient/deps/ . Install/upgrade any packages you find there (may be zero).

Slackware 64-bit:
You need to install multilib (see https://docs.slackware.com/slackware:multilib). Additionally, you need to install/upgrade any packages in the '<slackwareversion>/multilib' subdirectory of http://www.slackware.com/~alien/slackbuilds/steamclient/deps/ instead.

# ------------------------------------ #
steam.sh[3165]: Running Steam on slackware 15.0 64-bit
steam.sh[3165]: STEAM_RUNTIME is enabled automatically
setup.sh[3238]: Steam runtime environment up-to-date!
steam.sh[3165]: Steam client's requirements are satisfied
tid(3301) burning pthread_key_t == 0 so we never use it
[2024-02-04 10:54:24] Startup - updater built Jan 13 2024 00:51:43
[2024-02-04 10:54:24] Startup - Steam Client launched with: '/home/daedra/.local/share/Steam/ubuntu12_32/steam'
02/04 10:54:24 Init: Installing breakpad exception handler for appid(steam)/version(1705108172)/tid(3301)
crash_20240204105424_2.dmp[3304]: Uploading dump (out-of-process)
/tmp/dumps/crash_20240204105424_2.dmp
/home/daedra/.local/share/Steam/steam.sh: line 798:  3301 Segmentation fault      "$STEAMROOT/$STEAMEXEPATH" "$@"
daedra@shodan:~$ crash_20240204105424_2.dmp[3304]: Finished uploading minidump (out-of-process): success = yes
crash_20240204105424_2.dmp[3304]: response: CrashID=bp-01749562-14c3-4521-b0e4-7f2112240204
crash_20240204105424_2.dmp[3304]: file ''/tmp/dumps/crash_20240204105424_2.dmp'', upload yes: ''CrashID=bp-01749562-14c3-4521-b0e4-7f2112240204''

dump file (portion, if helpful)
Code:

���d4�aV EXTDOMAIN=steam_=/home/daedra/.local/share/Steam/ubuntu12_32/steam `e��!`��30
        ���    �XeV
                    �
dd������߄�˹��661c000-56644000 r--p 00000000 103:06 89523557                          /home/daedra/.local/share/Steam/ubuntu12_32/steam
56644000-56adb000 r-xp 00028000 103:06 89523557                          /home/daedra/.local/share/Steam/ubuntu12_32/steam
56adb000-56c86000 r--p 004bf000 103:06 89523557                          /home/daedra/.local/share/Steam/ubuntu12_32/steam
56c86000-56caa000 r--p 00669000 103:06 89523557                          /home/daedra/.local/share/Steam/ubuntu12_32/steam
56caa000-56cb2000 rw-p 0068d000 103:06 89523557                          /home/daedra/.local/share/Steam/ubuntu12_32/steam
56cb2000-56cf9000 rw-p 00000000 00:00 0
585b5000-58770000 rw-p 00000000 00:00 0                                  [heap]
f1600000-f401d000 r-xp 00000000 103:06 117560823                        /usr/lib/libnvidia-glvkspirv.so.535.154.05
f401d000-f412b000 r--p 02a1c000 103:06 117560823                        /usr/lib/libnvidia-glvkspirv.so.535.154.05
f412b000-f41b1000 rw-p 02b2a000 103:06 117560823                        /usr/lib/libnvidia-glvkspirv.so.535.154.05
f41b1000-f41e8000 rw-p 00000000 00:00 0
f4200000-f462e000 r-xp 00000000 103:06 117548011                        /usr/lib/libnvidia-glcore.so.535.154.05
f462e000-f464e000 rwxp 0042e000 103:06 117548011                        /usr/lib/libnvidia-glcore.so.535.154.05
f464e000-f6307000 r-xp 0044e000 103:06 117548011                        /usr/lib/libnvidia-glcore.so.535.154.05
f6307000-f6308000 ---p 02107000 103:06 117548011                        /usr/lib/libnvidia-glcore.so.535.154.05
f6308000-f7276000 r--p 02107000 103:06 117548011                        /usr/lib/libnvidia-glcore.so.535.154.05
f7276000-f72b1000 rw-p 03075000 103:06 117548011                        /usr/lib/libnvidia-glcore.so.535.154.05
f72b1000-f72dd000 rw-p 00000000 00:00 0
f73b6000-f744d000 r-xp 00000000 103:06 117551788                        /usr/lib/libnvidia-glsi.so.535.154.05
f744d000-f744e000 ---p 00097000 103:06 117551788                        /usr/lib/libnvidia-glsi.so.535.154.05
f744e000-f7451000 r--p 00097000 103:06 117551788                        /usr/lib/libnvidia-glsi.so.535.154.05
f7451000-f7452000 rw-p 0009a000 103:06 117551788                        /usr/lib/libnvidia-glsi.so.535.154.05
f7452000-f7458000 rw-p 00000000 00:00 0
f7458000-f74a3000 r--p 00000000 103:06 117539307                        /usr/lib/libGLX_nvidia.so.535.154.05
f74a3000-f74fb000 r-xp 0004b000 103:06 117539307                        /usr/lib/libGLX_nvidia.so.535.154.05
f74fb000-f751b000 rwxp 000a3000 103:06 117539307                        /usr/lib/libGLX_nvidia.so.535.154.05
f751b000-f751c000 r-xp 000c3000 103:06 117539307                        /usr/lib/libGLX_nvidia.so.535.154.05
f751c000-f7538000 r--p 000c4000 103:06 117539307                        /usr/lib/libGLX_nvidia.so.535.154.05
f7538000-f7539000 ---p 000e0000 103:06 117539307                        /usr/lib/libGLX_nvidia.so.535.154.05
f7539000-f7580000 r--p 000e0000 103:06 117539307                        /usr/lib/libGLX_nvidia.so.535.154.05
f7580000-f7583000 rw-p 00127000 103:06 117539307                        /usr/lib/libGLX_nvidia.so.535.154.05
f7583000-f7584000 rw-p 00000000 00:00 0
f7584000-f759a000 r--p 00000000 103:06 118129927                        /usr/lib/libGLdispatch.so.0.0.0
f759a000-f75da000 r-xp 00016000 103:06 118129927                        /usr/lib/libGLdispatch.so.0.0.0
f75da000-f75ed000 r--p 00056000 103:06 118129927                        /usr/lib/libGLdispatch.so.0.0.0
f75ed000-f75fb000 r--p 00069000 103:06 118129927                        /usr/lib/libGLdispatch.so.0.0.0
f75fb000-f75fc000 rw-p 00077000 103:06 118129927                        /usr/lib/libGLdispatch.so.0.0.0
f75fc000-f7600000 rw-p 00000000 00:00 0
f7600000-f7878000 r--p 00000000 103:06 119830768                        /usr/lib/locale/en_US.utf8/LC_COLLATE
f78c7000-f78d3000 rw-p 00000000 00:00 0
f78d3000-f78d4000 rw-p 00000000 00:00 0
f78d4000-f78d5000 r--p 00000000 00:00 0
f78d5000-f78d6000 rw-p 00000000 00:00 0
f78d6000-f78d7000 r--p 00000000 00:00 0
f78d7000-f78da000 r--p 00000000 103:06 119831843                        /usr/lib/libXext.so.6.4.0
f78da000-f78e6000 r-xp 00003000 103:06 119831843                        /usr/lib/libXext.so.6.4.0
f78e6000-f78e9000 r--p 0000f000 103:06 119831843                        /usr/lib/libXext.so.6.4.0
f78e9000-f78ea000 r--p 00011000 103:06 119831843                        /usr/lib/libXext.so.6.4.0
f78ea000-f78eb000 rw-p 00012000 103:06 119831843                        /usr/lib/libXext.so.6.4.0
f78eb000-f7920000 r--p 00000000 103:06 118129923                        /usr/lib/libGL.so.1.7.0
f7920000-f7941000 r-xp 00035000 103:06 118129923                        /usr/lib/libGL.so.1.7.0
f7941000-f7955000 r--p 00056000 103:06 118129923                        /usr/lib/libGL.so.1.7.0
f7955000-f795c000 r--p 0006a000 103:06 118129923                        /usr/lib/libGL.so.1.7.0
f795c000-f795d000 rw-p 00071000 103:06 118129923                        /usr/lib/libGL.so.1.7.0
f795d000-f7965000 r--p 00000000 103:06 89523441                          /home/daedra/.local/share/Steam/ubuntu12_32/crashhandler.so
f7965000-f79d1000 r-xp 00008000 103:06 89523441                          /home/daedra/.local/share/Steam/ubuntu12_32/crashhandler.so
f79d1000-f79f5000 r--p 00074000 103:06 89523441                          /home/daedra/.local/share/Steam/ubuntu12_32/crashhandler.so
f79f5000-f79f8000 r--p 00097000 103:06 89523441                          /home/daedra/.local/share/Steam/ubuntu12_32/crashhandler.so
f79f8000-f79f9000 rw-p 0009a000 103:06 89523441                          /home/daedra/.local/share/Steam/ubuntu12_32/crashhandler.so
f79f9000-f7a00000 rw-p 00000000 00:00 0
f7a00000-f7a23000 r--p 00000000 103:06 34345809                          /lib/libc-2.39.so
f7a23000-f7ba9000 r-xp 00023000 103:06 34345809                          /lib/libc-2.39.so
f7ba9000-f7bff000 r--p 001a9000 103:06 34345809                          /lib/libc-2.39.so
f7bff000-f7c01000 r--p 001ff000 103:06 34345809                          /lib/libc-2.39.so
f7c01000-f7c02000 rw-p 00201000 103:06 34345809                          /lib/libc-2.39.so
f7c02000-f7c0c000 rw-p 00000000 00:00 0
f7c0d000-f7c0e000 r-xp 00000000 00:00 0
f7c0e000-f7c0f000 r--p 00000000 103:06 118106512                        /usr/lib/libnvidia-tls.so.535.154.05
f7c0f000-f7c11000 r-xp 00001000 103:06 118106512                        /usr/lib/libnvidia-tls.so.535.154.05
f7c11000-f7c12000 r--p 00003000 103:06 118106512                        /usr/lib/libnvidia-tls.so.535.154.05
f7c12000-f7c14000 r--p 00003000 103:06 118106512                        /usr/lib/libnvidia-tls.so.535.154.05
f7c14000-f7c15000 rw-p 00005000 103:06 118106512                        /usr/lib/libnvidia-tls.so.535.154.05
f7c15000-f7c17000 r--p 00000000 103:06 118129926                        /usr/lib/libGLX.so.0.0.0
f7c17000-f7c42000 r-xp 00002000 103:06 118129926                        /usr/lib/libGLX.so.0.0.0
f7c42000-f7c45000 r--p 0002d000 103:06 118129926                        /usr/lib/libGLX.so.0.0.0
f7c45000-f7c46000 r--p 0002f000 103:06 118129926                        /usr/lib/libGLX.so.0.0.0
f7c46000-f7c47000 rw-p 00030000 103:06 118129926                        /usr/lib/libGLX.so.0.0.0
f7c47000-f7c4f000 rw-p 00000000 00:00 0
f7c4f000-f7ca8000 r--p 00000000 103:06 119830767                        /usr/lib/locale/en_US.utf8/LC_CTYPE
f7ca8000-f7ca9000 r--p 00000000 103:06 119830309                        /usr/lib/locale/en_US.utf8/LC_NUMERIC
f7ca9000-f7caa000 r--p 00000000 103:06 119814687                        /usr/lib/locale/en_US.utf8/LC_TIME
f7caa000-f7cab000 r--p 00000000 103:06 119815436                        /usr/lib/locale/en_US.utf8/LC_MONETARY
f7cab000-f7cac000 r--p 00000000 103:06 119815705                        /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
f7cac000-f7cad000 r--p 00000000 103:06 119832669                        /usr/lib/locale/en_US.utf8/LC_PAPER
f7cad000-f7cae000 r--p 00000000 103:06 119830409                        /usr/lib/locale/en_US.utf8/LC_NAME
f7cae000-f7caf000 r--p 00000000 103:06 119814686                        /usr/lib/locale/en_US.utf8/LC_ADDRESS
f7caf000-f7cb0000 r--p 00000000 103:06 119832670                        /usr/lib/locale/en_US.utf8/LC_TELEPHONE
f7cb0000-f7cb1000 r--p 00000000 103:06 119832668                        /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
f7cb1000-f7cb2000 r--p 00000000 103:06 119814676                        /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
f7cb2000-f7cb6000 rw-p 00000000 00:00 0
f7cb6000-f7cb7000 r--p 00000000 103:06 119831835                        /usr/lib/libXdmcp.so.6.0.0
f7cb7000-f7cb9000 r-xp 00001000 103:06 119831835                        /usr/lib/libXdmcp.so.6.0.0
f7cb9000-f7cbb000 r--p 00003000 103:06 119831835                        /usr/lib/libXdmcp.so.6.0.0
f7cbb000-f7cbc000 r--p 00004000 103:06 119831835                        /usr/lib/libXdmcp.so.6.0.0
f7cbc000-f7cbd000 rw-p 00005000 103:06 119831835                        /usr/lib/libXdmcp.so.6.0.0
f7cbd000-f7cbe000 r--p 00000000 103:06 119831807                        /usr/lib/libXau.so.6.0.0
f7cbe000-f7cbf000 r-xp 00001000 103:06 119831807                        /usr/lib/libXau.so.6.0.0
f7cbf000-f7cc0000 r--p 00002000 103:06 119831807                        /usr/lib/libXau.so.6.0.0
f7cc0000-f7cc1000 r--p 00002000 103:06 119831807                        /usr/lib/libXau.so.6.0.0
f7cc1000-f7cc2000 rw-p 00003000 103:06 119831807                        /usr/lib/libXau.so.6.0.0
f7cc2000-f7cc4000 rw-p 00000000 00:00 0
f7cc4000-f7ccf000 r--p 00000000 103:06 119832058                        /usr/lib/libxcb.so.1.1.0
f7ccf000-f7ce5000 r-xp 0000b000 103:06 119832058                        /usr/lib/libxcb.so.1.1.0
f7ce5000-f7cee000 r--p 00021000 103:06 119832058                        /usr/lib/libxcb.so.1.1.0
f7cee000-f7cef000 r--p 00029000 103:06 119832058                        /usr/lib/libxcb.so.1.1.0
�x�f���o-f7cf0000 rw-p 0002a000 103:06 119832058                        /usr/lib/libxcb.so.1.1.0
f7cf0000�aVH�aV��aV--p 00000000 103:06 34345821                          /lib/libpthread-2.39.so
"7cf1000-f7cf2000 r-xp 00001000 103:06 34345821                          /lib/libpthread-2.39.so
f<���h��Vh7cf3000 r--p 00002000 103:06 34345821                          /lib/libpthread-2.39.so
f7cf3000-f�1dV��aV������o�3���o���oj�aV���ovGSteam Executable Crash      /lib/libpthread-2.39.so
daedra@shodan:~$  rw-p 00003000 103:06 34345821                          /lib/libpthread-2.39.so
f7cf5000-f7d02000 r--p 00000000 103:06 34345814                          /lib/libm-2.39.so
f7d02000-f7e0f000 r-xp 0000d000 103:06 34345814                          /lib/libm-2.39.so
f7e0f000-f7e3d000 r--p 0011a000 103:06 34345814                          /lib/libm-2.39.so
f7e3d000-f7e3e000 r--p 00147000 103:06 34345814                          /lib/libm-2.39.so
f7e3e000-f7e3f000 rw-p 00148000 103:06 34345814                          /lib/libm-2.39.so
f7e3f000-f7e53000 r--p 00000000 103:06 118100999                        /usr/lib/libX11.so.6.4.0
f7e53000-f7ef0000 r-xp 00014000 103:06 118100999                        /usr/lib/libX11.so.6.4.0
f7ef0000-f7f82000 r--p 000b1000 103:06 118100999                        /usr/lib/libX11.so.6.4.0
f7f82000-f7f83000 r--p 00143000 103:06 118100999                        /usr/lib/libX11.so.6.4.0
f7f83000-f7f86000 rw-p 00144000 103:06 118100999                        /usr/lib/libX11.so.6.4.0
f7f86000-f7f87000 r--p 00000000 103:06 34345823                          /lib/librt-2.39.so
f7f87000-f7f88000 r-xp 00001000 103:06 34345823                          /lib/librt-2.39.so
f7f88000-f7f89000 r--p 00002000 103:06 34345823                          /lib/librt-2.39.so
f7f89000-f7f8a000 r--p 00002000 103:06 34345823                          /lib/librt-2.39.so
f7f8a000-f7f8b000 rw-p 00003000 103:06 34345823                          /lib/librt-2.39.so
f7f8b000-f7f8c000 r--p 00000000 103:06 34345813                          /lib/libdl-2.39.so
f7f8c000-f7f8d000 r-xp 00001000 103:06 34345813                          /lib/libdl-2.39.so
f7f8d000-f7f8e000 r--p 00002000 103:06 34345813                          /lib/libdl-2.39.so
f7f8e000-f7f8f000 r--p 00002000 103:06 34345813                          /lib/libdl-2.39.so
f7f8f000-f7f90000 rw-p 00003000 103:06 34345813                          /lib/libdl-2.39.so
f7f90000-f7f92000 rw-p 00000000 00:00 0
f7f92000-f7f96000 r--p 00000000 00:00 0                                  [vvar]
f7f96000-f7f98000 r-xp 00000000 00:00 0                                  [vdso]
f7f98000-f7f99000 r--p 00000000 103:06 34345806                          /lib/ld-2.39.so
f7f99000-f7f9a000 r-xp 00001000 103:06 34345806                          /lib/ld-2.39.so
f7f9a000-f7f9b000 r-xp 00002000 103:06 34345806                          /lib/ld-2.39.so
f7f9b000-f7fc2000 r-xp 00003000 103:06 34345806                          /lib/ld-2.39.so
f7fc2000-f7fcd000 r--p 0002a000 103:06 34345806                          /lib/ld-2.39.so
f7fcd000-f7fcf000 r--p 00034000 103:06 34345806                          /lib/ld-2.39.so
f7fcf000-f7fd0000 rw-p 00036000 103:06 34345806                          /lib/ld-2.39.so
ff82c000-ff84e000 rw-p 00000000 00:00 0                                  [stack]
�����]8���@��0]�������`]���`���]������]8y�����H^����P��x^�^��p���^��@X��^�_��E�_��W�`;�X_�E�����_?�� ��_�^'�`�P`(��linux-gate.so.1/lib/libdl.so.2/lib/librt.so.1(/usr/lib/libX11.so.6/lib/libm.so.6(/lib/libpthread.so.0/lib/libc.so.6$/lib/ld-linux.so.2(/usr/lib/libxcb.so.1(/usr/lib/libXau.so.6,/usr/lib/libXdmcp.so.6v/home/daedra/.local/share/Steam/ubuntu12_32/crashhandler.so&/usr/lib/libGL.so.1(/usr/lib/libGLX.so.0*/usr/lib/libXext.so.66/usr/lib/libGLdispatch.so.06/usr/lib/libGLX_nvidia.so.0J/usr/lib/libnvidia-glsi.so.535.154.05H/usr/lib/libnvidia-tls.so.535.154.05N/usr/lib/libnvidia-glcore.so.535.154.05T/usr/lib/libnvidia-glvkspirv.so.535.154.05�Z�������@��Vp{�����


I used Alien Bob's mirror_slackware_current.sh script to create an up to date 32bit iso, so my multilib packages are perfectly in sync with -current. I will start investigating and report back here if I find something.

garpu 02-04-2024 11:17 AM

Added my two cents to the nvidia thread. So strange that Arch isn't having the same problem. Normally if they encounter a strange bug, so do we. (Since slackware-current and arch are often on the same versions of things.)

af7567 02-04-2024 12:01 PM

Quote:

Originally Posted by garpu (Post 6481297)
Added my two cents to the nvidia thread. So strange that Arch isn't having the same problem. Normally if they encounter a strange bug, so do we. (Since slackware-current and arch are often on the same versions of things.)

Yes, I did check the Arch forums too but don't see any mention of it. Since it affects steam I would have expected a lot of people to have the problem.
Arch also seems to have the same version of libglvnd without any extra patches.
Arch does use different configure options when building 32bit glibc though (I think)

Arch from https://gitlab.archlinux.org/archlin...ref_type=heads:
Code:

--prefix=/usr     
--with-headers=/usr/include     
--with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/glibc/-/issues     
--enable-bind-now     
--enable-fortify-source     
--enable-kernel=4.4     
--enable-multi-arch     
--enable-stack-protector=strong     
--enable-systemtap     
--disable-nscd     
--disable-profile     
--disable-werror

Slackware from http://www.slackware.com/~alien/mult...lib.SlackBuild:
Code:

--prefix=/usr \
    --libdir=/usr/lib${LIBDIRSUFFIX} \
    --enable-kernel=4.4 \
    --with-headers=/usr/include \
    --enable-add-ons \
    --enable-profile \
    $DISABLE_NSCD \
    --infodir=/usr/info \
    --mandir=/usr/man \
    --with-tls \
    --with-__thread \
    --without-cvs \
    $TARGET-slackware-linux

I might be reading the build scripts wrongly though :)

garpu 02-04-2024 03:04 PM

So I'm wondering if it's something 64-bit has that 32-bit doesn't, namely something added to Slackware that needs to be picked up for multilib. Here's a complete list of everything that was added since Jan. 5, the last time multilib was refreshed:

l/libnvme-1.7.1-x86_64-1.txz
d/nv-codec-headers-12.1.14.0-x86_64-1.txz
l/libass-0.17.1-x86_64-1.txz
l/libplacebo-6.338.2-x86_64-1.txz
l/python-editables-0.5-x86_64-1
l/python-hatchling-1.21.0-x86_64-1.txz
l/python-pathspec-0.12.1-x86_64-1.txz
l/python-pluggy-1.4.0-x86_64-1.txz:
l/python-sphinx_rtd_theme-2.0.0-x86_64-1.txz
l/python-trove-classifiers-2024.1.8-x86_64-1.txz
l/python-html5lib-1.1-x86_64-1.txz
l/python-webencodings-0.5.1-x86_64-1.txz

I'm not completely convinced it's an nvidia bug, since Arch isn't having the same problem. (Nor is 64-bit Slackware.)

af7567 02-04-2024 03:36 PM

If it was a missing library then it just wouldn't work at all, even when run with gdb or strace.
The reason I think it's something to do with the way the nvidia libGLX_nvidia is compiled is because it works OK when forcing libGLX_mesa instead.

ldd /usr/lib/libGLX_nvidia.so.0 shows that no libraries are missing for me. Maybe we could try rebuilding some of the libraries listed there though, like libxcb, libXau, libXdmcp.

edit: it looks like they are all built as part of a bigger x11 build script, so can't just build them individually

af7567 02-04-2024 04:28 PM

I just recompiled glibc 2.39 multilib and added the configure options that are present in the Arch build script (except --enable-systemtap) but I still get the same segfault with glx.

garpu 02-04-2024 05:04 PM

In the past, though, whenever there's been an unexplained issue with a library and multilib, it's usually something missing from multilib. My logic was that 64-bit slackware works, so it's got something the multilib set doesn't have, since a whole lot was added to it. Aside from that and what's been tried here, I'm not sure. There's not much movement on the nvidia forum thread.

af7567 02-04-2024 05:32 PM

I know what you mean about waiting for multilib to catchup, I have noticed that before too in the past :)
This problem only started for me after installing updates yesterday, and those updates were:

Code:

-rw-r--r-- 1 root root    4036 Feb  3 21:19 SDL2-2.30.0-x86_64-1
-rw-r--r-- 1 root root  432161 Feb  3 21:20 calligra-3.2.1-x86_64-36
-rw-r--r-- 1 root root  16024 Feb  3 21:20 cantor-23.08.4-x86_64-2
-rw-r--r-- 1 root root    5573 Feb  3 21:20 fetchmail-6.4.38-x86_64-1
-rw-r--r-- 1 root root    1765 Feb  3 21:20 ipset-7.20-x86_64-1
-rw-r--r-- 1 root root  136778 Feb  3 21:21 kernel-firmware-20240201_09f0fb8-noarch-1
-rw-r--r-- 1 root root  31636 Feb  3 21:21 kernel-headers-6.6.15-x86-1
-rw-r--r-- 1 root root  10873 Feb  3 21:21 kfilemetadata-5.114.0-x86_64-3
-rw-r--r-- 1 root root  98197 Feb  3 21:21 kile-2.9.93-x86_64-30
-rw-r--r-- 1 root root  11288 Feb  3 21:21 kitinerary-23.08.4-x86_64-2
-rw-r--r-- 1 root root  79095 Feb  3 21:21 krita-5.2.2-x86_64-3
-rw-r--r-- 1 root root  10248 Feb  3 21:22 libindi-2.0.6-x86_64-1
-rw-r--r-- 1 root root    995 Feb  3 21:22 libusb-1.0.27-x86_64-1
-rw-r--r-- 1 root root    4397 Feb  3 21:22 mesa-24.0.0-x86_64-1
-rw-r--r-- 1 root root  81545 Feb  3 21:22 okular-23.08.4-x86_64-2
-rw-r--r-- 1 root root  42176 Feb  3 21:22 pipewire-1.0.3-x86_64-1
-rw-r--r-- 1 root root  11042 Feb  3 21:22 poppler-24.02.0-x86_64-1

Also multilib glibc 2.39 - but since I have been playing with different versions that isn't showing up as installed at the same time any more.

I was sure it was glibc 2.39 which caused the problem.. but I have now recompiled glibc 2.38 and I am still getting exactly the same segfault. So now i'm more confused :)

Edit: just had another thought about the kernel headers. Maybe since I have the 6.6.15 kernel headers installed now, my glibc build used them and so it's not the same as the old 2.38 that was built before. I'm not sure if they would make a difference to the resulting glibc but I guess trying with older kernel headers is something I could test tomorrow.

garpu 02-04-2024 06:00 PM

Quote:

Originally Posted by af7567 (Post 6481375)
Edit: just had another thought about the kernel headers. Maybe since I have the 6.6.15 kernel headers installed now, my glibc build used them and so it's not the same as the old 2.38 that was built before. I'm not sure if they would make a difference to the resulting glibc but I guess trying with older kernel headers is something I could test tomorrow.

I don't think it's 6.6.15. I tried 6.6.14 with nividia drivers compiled for 6.6.14, and I was getting the same segfault. (My theory was it was the patch causing issues.) 6.6.14 was working fine yesterday before updating.

I wish I had an AMD card I could toss in and see what happens.

garpu 02-04-2024 07:19 PM

going through logs. I found this:

Code:

Feb  4 18:49:13 zdeno kernel: glxgears[12991]: segfault at c ip 00000000f7f3f2b3 sp 00000000ffb96830 error 4 in ld-2.39.so[f7f34000+27000] likely on CPU 3 (core 4, socket 0)
Feb  4 18:49:13 zdeno kernel: Code: 48 85 c0 78 11 8b 4c 24 4c 8d 14 80 8d 14 50 89 8c d3 1c 00 00 00 8b 4c 24 30 85 c9 0f 85 c5 01 00 00 89 04 24 e8 fd 46 ff ff <8b> 40 0c 85 c0 0f 85 05 05 00 00 89 3c 24 ff 93 40 fb ff ff 8b 44


Daedra 02-04-2024 08:13 PM

Quote:

Originally Posted by garpu (Post 6481380)
I don't think it's 6.6.15. I tried 6.6.14 with nividia drivers compiled for 6.6.14, and I was getting the same segfault. (My theory was it was the patch causing issues.) 6.6.14 was working fine yesterday before updating.

I wish I had an AMD card I could toss in and see what happens.

I am not so sure it's the nvidia patch either. As a test I recompiled the kernel with the patch that Bathory provided here. After compiling the kernel I was able to build both the nvidia-driver and nvidia-kernel without patching, but still got the error unless I ran steam and 32bit glxgears with strace.

af7567 02-05-2024 05:04 AM

I have now installed the linux kernel headers 6.6.8 and used them to rebuild glibc-2.38 and libglvnd but still getting the segfault.
Also other libraries listed by ldd for glxinfo and libGLX_nvidia.so were last modified before February. So that should mean I have all the versions back to how they were before it went wrong, but it's still not working.
Code:

ls -l -H /usr/lib/libX11.so.6 /usr/lib/libXext.so.6 /usr/lib/libGL.so.1 /usr/lib/libGLU.so.1 /usr/lib/libOpenGL.so.0 /lib/libm.so.6 /lib/libc.so.6 /usr/lib/libxcb.so.1 /usr/lib/libGLX.so.0 /usr/lib/libGLdispatch.so.0 /usr/lib/libstdc++.so.6 /usr/lib/libgcc_s.so.1 /usr/lib/libXau.so.6 /usr/lib/libXdmcp.so.6 /usr/lib/libnvidia-glsi.so.535.154.05 /usr/lib/libnvidia-tls.so.535.154.05 /usr/lib/libnvidia-glcore.so.535.154.05 /usr/lib/libX11.so.6 /usr/lib/libXext.so.6 /lib/libc.so.6 /lib/libdl.so.2 /lib/libpthread.so.0 /lib/librt.so.1 /lib/libm.so.6 /usr/lib/libxcb.so.1 /usr/lib/libXau.so.6 /usr/lib/libXdmcp.so.6
-rwxr-xr-x 1 root root  2491616 Feb  5 10:38 /lib/libc.so.6*
-rwxr-xr-x 1 root root  2491616 Feb  5 10:38 /lib/libc.so.6*
-rwxr-xr-x 1 root root    14860 Feb  5 10:38 /lib/libdl.so.2*
-rwxr-xr-x 1 root root  1404128 Feb  5 10:38 /lib/libm.so.6*
-rwxr-xr-x 1 root root  1404128 Feb  5 10:38 /lib/libm.so.6*
-rwxr-xr-x 1 root root    15876 Feb  5 10:38 /lib/libpthread.so.0*
-rwxr-xr-x 1 root root    15364 Feb  5 10:38 /lib/librt.so.1*
-rwxr-xr-x 1 root root  439728 Feb  5 10:49 /usr/lib/libGL.so.1*
-rwxr-xr-x 1 root root  501460 Jul 24  2023 /usr/lib/libGLU.so.1*
-rwxr-xr-x 1 root root  198168 Feb  5 10:49 /usr/lib/libGLX.so.0*
-rwxr-xr-x 1 root root  488968 Feb  5 10:49 /usr/lib/libGLdispatch.so.0*
-rwxr-xr-x 1 root root  136620 Feb  5 10:49 /usr/lib/libOpenGL.so.0*
-rwxr-xr-x 1 root root  1338176 Oct  3 21:55 /usr/lib/libX11.so.6*
-rwxr-xr-x 1 root root  1338176 Oct  3 21:55 /usr/lib/libX11.so.6*
-rwxr-xr-x 1 root root    13684 Dec  8  2022 /usr/lib/libXau.so.6*
-rwxr-xr-x 1 root root    13684 Dec  8  2022 /usr/lib/libXau.so.6*
-rwxr-xr-x 1 root root    21856 Nov 21  2022 /usr/lib/libXdmcp.so.6*
-rwxr-xr-x 1 root root    21856 Nov 21  2022 /usr/lib/libXdmcp.so.6*
-rwxr-xr-x 1 root root    76064 Oct 31  2022 /usr/lib/libXext.so.6*
-rwxr-xr-x 1 root root    76064 Oct 31  2022 /usr/lib/libXext.so.6*
-rwxr-xr-x 1 root root  169512 Jul 27  2023 /usr/lib/libgcc_s.so.1*
-rwxr-xr-x 1 root root 51051472 Feb  5 10:41 /usr/lib/libnvidia-glcore.so.535.154.05*
-rwxr-xr-x 1 root root  634576 Feb  5 10:41 /usr/lib/libnvidia-glsi.so.535.154.05*
-rwxr-xr-x 1 root root    21880 Feb  5 10:41 /usr/lib/libnvidia-tls.so.535.154.05*
-rwxr-xr-x 1 root root  2508672 Jul 27  2023 /usr/lib/libstdc++.so.6*
-rwxr-xr-x 1 root root  173888 Aug 17 20:19 /usr/lib/libxcb.so.1*
-rwxr-xr-x 1 root root  173888 Aug 17 20:19 /usr/lib/libxcb.so.1*


Petri Kaukasoina 02-05-2024 05:53 AM

Quote:

Originally Posted by af7567 (Post 6481375)
just had another thought about the kernel headers. Maybe since I have the 6.6.15 kernel headers installed now, my glibc build used them and so it's not the same as the old 2.38 that was built before. I'm not sure if they would make a difference to the resulting glibc but I guess trying with older kernel headers is something I could test tomorrow.

Quote:

Originally Posted by af7567 (Post 6481470)
I have now installed the linux kernel headers 6.6.8 and used them to rebuild glibc-2.38 and libglvnd but still getting the segfault.

The previous stock glibc-2.38 was built 2023-10-13 (Pat) or 2023-10-14 (Eric). It was built against the latest kernel headers at that time. It was kernel-headers-6.1.57 (2023-10-11). There shouldn't be much or any difference between the 6.6.8 and 6.6.15 headers, but in principle, there could be some difference between 6.1.57 and 6.6.15 headers. Maybe you could try to rebuild glibc-2.38 against the 6.1.57 headers?

af7567 02-05-2024 06:04 AM

Quote:

Originally Posted by Petri Kaukasoina (Post 6481477)
The previous stock glibc-2.38 was built 2023-10-13 (Pat) or 2023-10-14 (Eric). It was built against the latest kernel headers at that time. It was kernel-headers-6.1.57 (2023-10-11). There shouldn't be much or any difference between the 6.6.8 and 6.6.15 headers, but in principle, there could be some difference between 6.1.57 and 6.6.15 headers. Maybe you could try to rebuild glibc-2.38 against the 6.1.57 headers?

Ah ok, I will try with older headers later then :)
The reason I used 6.6.8 is because that's the kernel I currently have installed, and it was after updating to 6.6.15 that people needed an extra patch to build the nvidia module.

Petri Kaukasoina 02-05-2024 06:19 AM

Or you could use Alien Bob's old multilib glibc-2.38. Google found a mirror not upgraded yet: https://www.slackjeff.com.br/multilib/current/. If you check the packages against the gpg signatures, it should be safe.

af7567 02-05-2024 06:29 AM

Thanks, I had tried searching for old versions but google just kept sending me to Eric's site, and archive.org only had 2.37. Eric still has the signatures up on his site so I can use them to verify.

af7567 02-05-2024 06:40 AM

Finding those old packages made things much easier :)
I have just reinstalled Eric's original versions (verified the md5sums) and now 32bit glxinfo and steam are working fine again.

Just before, I did recompile glibc using kernel headers 5.15.145 from Slackware-15.0 since it was easy to install them but that glibc also caused a segfault.

So there seems to be something else different about those 2.38 packages. GCC hasn't been updated since August 2023 so shouldn't be that. Maybe binutils makes a difference? But Arch is also using binutils-2.42.

The working versions for me are:
glibc-profile-2.38_multilib-x86_64-3alien.txz
glibc-i18n-2.38_multilib-x86_64-3alien.txz
aaa_glibc-solibs-2.38_multilib-x86_64-3alien.txz
glibc-2.38_multilib-x86_64-3alien.txz

af7567 02-05-2024 07:10 AM

I have just rebuilt binutils-2.41 but without the binutils-readelf-other-sym-info.patch.gz patch which seems to have been added for the 2.42 build.
I then rebuilt glibc-2.38 again using my binutils-2.41 and kernel-headers 5.15. This glibc 2.38 is also working with 32bit GLX.

So now I'm not sure if the problem is binutil-2.42, the binutils-readelf-other-sym-info.patch.gz patch, or does it just work because I built it while I already had Eric's original glibc-2.38 installed? So many possibilities :)

I guess the next thing to try is update everything except binutils and then recompile glibc-2.39 using binutils-2.41.

garpu 02-05-2024 07:25 AM

https://slackware.uk/cumulative/ Does this help out any?

So if glibc 2.39 is the issue, could it be something with our build? I'm still stuck on arch having binutils 2.42 and glibc 2.39 and no problems reported... That would indicate an issue with us, correct? (And why Christesrun isn't having problems.)

af7567 02-05-2024 07:31 AM

Quote:

Originally Posted by garpu (Post 6481505)
https://slackware.uk/cumulative/ Does this help out any?

So if glibc 2.39 is the issue, could it be something with our build? I'm still stuck on arch having binutils 2.42 and glibc 2.39 and no problems reported... That would indicate an issue with us, correct? (And why Christesrun isn't having problems.)

It doesn't look like glibc-2.39 is really the issue, since when I compiled my own 2.38 that also didn't work - so it looks more like the tools used to build glibc are causing the problem.
If Christesrun is using an old version of the nvidia driver it might not be using libglvnd and programs are just linked directly to the nvidia libGLX. The crash is happening when libglvnd tries to load the nvidia libGLX.

I have just updated my system again now apart from binutils (it looks like a lot of compat32 updates are there now too). After the update 32 bit glx is broken again. So now I will rebuild glibc-2.39 using binutils-2.41 and see what happens.

edit: glibc-2.39 built with binutils-2.41 + kernel-headers 6.6.15 works. So next is to try binutils-2.42 without the readelf patch.

garpu 02-05-2024 07:51 AM

https://gitlab.archlinux.org/archlin...ls/-/tree/main Could be something to it. They don't use the readelf patch.

af7567 02-05-2024 09:35 AM

Quote:

Originally Posted by garpu (Post 6481514)
https://gitlab.archlinux.org/archlin...ls/-/tree/main Could be something to it. They don't use the readelf patch.

I tried building binutils-2.42 with all but the readelf patch, and then glibc using kernel-headers 6.6.15 but that gave a bad glibc.
Since they only used the gold-warn-unsupported patch in arch I tried building binutils-2.42 with only that patch but that also resulted in a bad glibc.
I now got a good glibc-2.39 by using binutils-2.41 with all but the readelf patch.

So far I have:
Code:

original glibc-2.38 + binutils 2.41 some patches + kernel 5.15 -> good glibc-2.38
good glibc-2.38 + binutils 2.42 most patches + kernel 6.6.15 -> bad glibc-2.39
bad libc-2.39 + binutils 2.42 only gold patch + kernel 6.6.15 -> bad glibc-2.39
bad libc-2.39 + binutils 2.41 most patches + kernel 6.6.15 -> good glibc-2.39

I wonder if I now try rebuilding binutils 2.42 using my good glibc it will result in a binutils which can build another working glibc.

I have uploaded my working glibc-2.39 which was compiled with binutils-2.41 and headers 6.6.15 to http://135.125.183.217/glibc/ in case anyone wanted to test if it works for them. At your own risk of course :)

garpu 02-05-2024 09:38 AM

Hrm. I wonder why we need the readelf patch? (Is Pat lurking? Some insight would be interesting.)

af7567 02-05-2024 09:40 AM

Quote:

Originally Posted by garpu (Post 6481540)
Hrm. I wonder why we need the readelf patch? (Is Pat lurking? Some insight would be interesting.)

The only reason I built 2.41 without the readelf patch is because it wouldn't apply to 2.41 :) but when I built 2.42 without it, that also didn't fix the glibc problem.

edit: just tried again building binutils-2.42 with all except readelf patch, and rebuilding glibc starting with a working glibc this time and the result is a broken glibc again. So it looks like binutils-2.42 is causing the problem somehow.

Petri Kaukasoina 02-05-2024 10:27 AM

Quote:

Originally Posted by af7567 (Post 6481541)
The only reason I built 2.41 without the readelf patch is because it wouldn't apply to 2.41 :) but when I built 2.42 without it, that also didn't fix the glibc problem.

There was a binutils-readelf-other-sym-info.patch already in slackware-15.0 (binutils-2.37). It's from fedora:
Code:

# Purpose:  Changes readelf so that when it displays extra information about
#          a symbol, this information is placed at the end of the line.
# Lifetime: Permanent.
# FIXME:    The proper fix would be to update the scripts that are expecting
#          a fixed output from readelf.  But it seems that some of them are
#          no longer being maintained.

I guess some builds run readelf and expect a certain output.

Petri Kaukasoina 02-05-2024 10:34 AM

Quote:

Originally Posted by af7567 (Post 6481541)
So it looks like binutils-2.42 is causing the problem somehow.

Would you do this test? Install a bad glibc-2.39 produced by binutils-2.42. And then copy only /lib/libdl-2.33.so from a good glibc-2.39 produced by binutils-2.41. Does the good libdl fix GLX?

af7567 02-05-2024 10:48 AM

Quote:

Originally Posted by Petri Kaukasoina (Post 6481549)
Would you do this test? Install a bad glibc-2.39 produced by binutils-2.42. And then copy only /lib/libdl-2.33.so from a good glibc-2.39 produced by binutils-2.41. Does the good libdl fix GLX?

I will do, I am just building another glibc-2.39 using binutils-2.42 with arch configure options which I expect to end up bad so I can use that for your test.

While looking at the Arch build script I saw the comment
Quote:

# toolchain build order: linux-api-headers->glibc->binutils->gcc->glibc->binutils->gcc
So now I am also wondering if gcc needs to be rebuilt after building a new binutils, and use that to create the new glibc. Since gcc hasn't been rebuilt since the binutils upgrade on Slackware that might be why using binutils-2.41 is working for me since the current gcc was built with binutils-2.41.

Petri Kaukasoina 02-05-2024 11:01 AM

Quote:

Originally Posted by af7567 (Post 6481558)
I will do, I am just building another glibc-2.39 using binutils-2.42 with arch configure options which I expect to end up bad so I can use that for your test.

Never mind. Forget my test. I just noticed that Alien Bob's /lib/libdl-2.38.so and /lib/libdl-2.39.so have exactly the same md5sum even though they are from different glibc versions, built using different binutils versions!

But maybe you see changes in md5sum between a working and broken libc-2.39.so ?

garpu 02-05-2024 11:21 AM

I don't think there's ever been a gcc rebuild before/after glibc? There was a giant mass rebuild a couple years ago, though.

af7567 02-05-2024 11:26 AM

Quote:

Originally Posted by Petri Kaukasoina (Post 6481562)
Never mind. Forget my test. I just noticed that Alien Bob's /lib/libdl-2.38.so and /lib/libdl-2.39.so have exactly the same md5sum even though they are from different glibc versions, built using different binutils versions!

But maybe you see changes in md5sum between a working and broken libc-2.39.so ?

The new broken glibc is built now and crashes with:
Code:

#0  0xf7f872b3 in _dl_open () from /lib/ld-linux.so.2
#1  0xf7894e0b in dlopen_doit () from /lib/libc.so.6
#2  0xf7f7a5bb in _dl_catch_exception () from /lib/ld-linux.so.2
#3  0xf7f7a6ef 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  0xf7b14073 in ?? () from /usr/lib/libGLX.so.0
#7  0xf7b155e8 in ?? () from /usr/lib/libGLX.so.0
#8  0xf7b0e6a6 in glXChooseVisual () from /usr/lib/libGLX.so.0
#9  0x08049409 in ?? ()

The md5sums are the same for my bad installed one, and my working one
Code:

266ebd09c97e73790a2f8b4004fbcac5  /lib/libdl-2.39.so
266ebd09c97e73790a2f8b4004fbcac5  ./libdl-2.39.so

I did your test anyway by copying the "good" libdl over the bad one, and glxinfo still crashed in exactly the same way - which is a good thing otherwise I would have been more confused :)

I think I should try installing my binutils-2.41 glibc again, then build binutils-2.42 with all the Slackware patches, and then rebuild gcc _before_ building glibc again.
I haven't compiled gcc since about 1999 on a Pentium 166Mhz, hopefully it doesn't take as long as it did back then :)

Petri Kaukasoina 02-05-2024 11:38 AM

Quote:

Originally Posted by af7567 (Post 6481568)
The new broken glibc is built now and crashes with:
Code:

#0  0xf7f872b3 in _dl_open () from /lib/ld-linux.so.2
#1  0xf7894e0b in dlopen_doit () from /lib/libc.so.6


How about /lib/ld-2.39.so? Is its md5sum the same for the good and bad one? Or /lib/libc-2.39.so?

af7567 02-05-2024 11:51 AM

Quote:

Originally Posted by Petri Kaukasoina (Post 6481572)
How about /lib/ld-2.39.so? Is its md5sum the same for the good and bad one?

No, the md5sum for those a different. The sizes are the same though
Code:

-rwxr-xr-x 1 root root 244836 Feb  5 16:54 ./ld-2.39.so*        (bad)
-rwxr-xr-x 1 root root 244836 Feb  5 14:51 /lib/ld-2.39.so*      (good)
421a075f67cd763289915a666a8700ba  ./ld-2.39.so                  (bad)
d5c13936dc1728d04ae7540235d50edb  /lib/ld-2.39.so                (good)

-rwxr-xr-x 1 root root 2384584 Feb  5 16:54 ./libc-2.39.so*      (bad)
-rwxr-xr-x 1 root root 2384584 Feb  5 14:51 /lib/libc-2.39.so*  (good)
27baf3e472fbd8ab71b9323e3d0b0ed0  ./libc-2.39.so                (bad)
05339bd9ff5dcdb0ab4bfd8acc4c2635  /lib/libc-2.39.so              (good)

It is currently building gcc-multilib so I can't test overwriting a broken ld-2.39 with a good one at the moment. But maybe the GCC->glibc build will also fail and then I can :)

edit: the libc sizes are also the same, but md5sums different
edit2: I did objdump -D on them and diff and there are a lot of changes to the instructions, so the difference isn't just some version string


All times are GMT -5. The time now is 11:02 AM.