This must certainly be an installation issue but it has been very difficult to debug/track down. I've done a fair amount of sleuthing with the linker. I'm soliciting ideas of things to try that I haven't already - i.e. before I throw in the towel and perform a complete reinstall of the OS.
I have a very old X-application that I have been running over the years with the help of multilib. In fact it is so old that it has to be built in Slackware 8 with libc version 5. The source will not build/compile on a modern systems - so I knew something like this would eventually crop up. I am pretty certain however this is an OS installation issue and not associated with the old code. In fact I know this as other "current" systems with essentially the same installation do not have this issue.
I normally call this application from a script - actually a .desktop file that then calls the script. The script basically sets some Xresouces before it calls the application. Because it is a script I was able to inject some debugging lines into it and see which libraries are/not linking via ldd.
One very relevant point is that this issue is only observed when X is started from the X desktop manager - i.e. run level 4. When X is started from the command line (run level 3) the application runs and links the compat32 libraries no issue. In fact it will run from my shell (via command line) in run level 4. Below are the all the libraries (from #ldd x-app) the application uses. I have enclosed the compat32 libs in the code-box which do not link (and thus the application fails to run) in run level 4:
linux-gate.so.1 (0xf7edc000)
libm.so.6 => /lib/libm.so.6 (0xf7d90000)
libXaw3d.so.6 => /usr/i386-linux-libc5/lib/libXaw3d.so.6 (0xf7d02000)
libXmu.so.6 => /usr/lib/libXmu.so.6 (0xf7ce7000)
libXt.so.6 => /usr/lib/libXt.so.6 (0xf7c85000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xf7c71000)
libXpm.so.4 => /usr/lib/libXpm.so.4 (0xf7c5e000)
libSM.so.6 => /usr/lib/libSM.so.6 (0xf7c53000)
libICE.so.6 => /usr/lib/libICE.so.6 (0xf7c36000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xf7af0000)
libresolv.so.2 => /lib/libresolv.so.2 (0xf7adb000)
libc.so.6 => /lib/libc.so.6 (0xf78dc000)
/lib/ld-linux.so.2 (0xf7ede000)
Code:
libuuid.so.1 => /lib/libuuid.so.1 (0xf78d3000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf78a7000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xf78a2000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xf789b000)
You should note this doesn't appear to be a library path issue as some libraries from /lib and /usr/lib are linking. I've checked the 4 missing libraries and confirmed they are from the compat32 packages of the multilib installation below. These of course have their 64-bit counterparts in /lib64 and /usr/lib64.
util-linux-compat32-2.38.1-x86_64-1compat32
libxcb-compat32-1.15-x86_64-1compat32
libXau-compat32-1.0.11-x86_64-1compat32
libXdmcp-compat32-1.1.4-x86_64-1compat32
I managed a work-around to force the linking (in an xsession) by setting the LD_LIBRARY_PATH variable inside my script (see below). This is an excerpt of /etc/profile.d/32dev.sh. It doesn't actually fix the underlying issue with run level 4. It is only a band-aid fix.
Quote:
if [ ! "$LD_LIBRARY_PATH" = "" ]; then
export LD_LIBRARY_PATH="/usr/local/lib:/lib:/usr/lib:$LD_LIBRARY_PATH"
else
export LD_LIBRARY_PATH="/usr/local/lib:/lib:/usr/lib"
fi
|
I have reinstalled (via "upgradepkg --reinstall") both the sddm packages (sddm and sddm-kcm) and the multilib packages. Next in line is a complete reinstall of the X series packages. Hoping someone might point me to specific ones first. Thanks for any input.