glibc not found anymore after update, affects pretty much all programs

I had a PC with OpenSUSE Leap 15.3 KDE that was working just fine for months.
Yesterday I applied some updates (zypper ref; zypper up). The system still works and boots, but most programs fail to start. E.g. firefox:
/usr/lib64/firefox/firefox: /home/as01449/software/gcc/gcc_92/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29’ not found (required by /usr/lib64/firefox/firefox)

My LD_LIBRARY PATH looks like this, and always did even before the updates:
echo $LD_LIBRARY_PATH
/home/as01449/cgns/lib64:/usr/local/hdf5/lib64:/home/as01449/openmpi_403/lib64/:/home/as01449/cgns/lib64:/usr/local/hdf5/lib64:/home/as01449/openmpi_403/lib64/:/home/as01449/software/gcc/gcc_92/lib64/:/home/as01449/software/gcc/gcc_92/lib64/

I have these defined in .bashrc for some stuff I installed manually.
When I empty LD_LIBRARY_PATH, everything is back as it should be. All programs launch without errors.
What changed, and how can I get the old behavior back?

Roll back or reinstall.

What exactly do you suggest I reinstall?

@flotus1:

It may well be that, the patches changed the behaviour of the dynamic linker –

  • Did you take note of the current “ld.so” man page?

       LD_LIBRARY_PATH
              A list of directories in which to search for ELF libraries at execution time.  The items  in  the  list
              are separated by either colons or semicolons, and there is no support for escaping either separator.

              This variable is ignored in secure-execution mode.

              Within the pathnames specified in LD_LIBRARY_PATH, the dynamic linker expands the tokens $ORIGIN, $LIB,
              and $PLATFORM (or the versions using curly braces around the names) as described above in  Rpath  token
              expansion.  Thus, for example, the following would cause a library to be searched for in either the lib
              or lib64 subdirectory below the directory containing the program to be executed:

                  $ LD_LIBRARY_PATH='$ORIGIN/$LIB' prog

              (Note the use of single quotes, which prevent expansion of $ORIGIN and $LIB as shell variables!)

No idea but, it may well be that, the secure-execution mode got enabled due to the patches …

  • Or, to setup the dynamic linker, you now need to follow another procedure – different to the procedure you were following before the patches were applied …

Leap 15.3. An alternate option is providing more information about your install: https://forums.opensuse.org/entry.php/235-Leap-Update-Information

@dcurtisfra](https://forums.opensuse.org/member.php/42186-dcurtisfra) Yeah…I have no idea how to figure out any of this.
Adding /usr/lib and /usr/lib64 to LD_LIBRARY_PATH works as a band aid.

Or, to setup the dynamic linker, you now need to follow another procedure

I can’t remember “setting up the dynamic linker” at any point, unless we count adding stuff to LD_LIBRARY PATH? Hence it will be difficult for me to follow any other procedure that I don’t know about :shame:

Take a look through “/var/log/zypp/history” to see what was installed on the occasion of the “offending” zypper up. Read through the relevant change logs to see if there’s anything there that provides a clue.

You might also want to take a look at this article, “LD_LIBRARY_PATH – or: How to get yourself into trouble!

As an aside, openSUSE Leap 15.3 is expected to be maintained until end of November 2022, so very close to end of life.