Re: [opensuse] libglx.so: undefined symbol: _nv000069gl [Solved]




auxsvr@xxxxxxxxx escreveu:
OK, I thought you used the shar from NVIDIA like me. The missing symbol is in /usr/lib/libGLcore.so.1 (symlink) in my system, so X finds the wrong file in your case. Try searching for other occurrences of libGLcore.so and removing them.

Well, let's see...

$ locate libGLcore.so
/usr/lib/libGLcore.so.1
/usr/lib/libGLcore.so.1.0
/usr/lib/xorg/modules/extensions/libGLcore.so

First up...

rpm -qf /usr/lib/libGLcore.so.1.0
Mesa-6.5.1-23

...interesting - it's Mesa, not NVidia, which explains why it's missing the symbol "_nv000069gl"

rpm -qf /usr/lib/xorg/modules/extensions/libGLcore.so
xorg-x11-server-7.2-30.11

OK, that's good.


Looking in more detail at the Mesa one then...

rpm -qif /usr/lib/libGLcore.so.1.0
Name : Mesa Relocations: (not relocatable)
Version : 6.5.1 Vendor: SUSE LINUX
Products GmbH, Nuernberg, Germany
Release : 23 Build Date: Mon 27 Nov 2006
18:59:28 GMT
Install Date: Sun 24 Dec 2006 13:59:56 GMT Build Host: tux.suse.de
Group : System/Libraries Source RPM:
Mesa-6.5.1-23.src.rpm
Size : 38939248 License: X11/MIT
Signature : DSA/SHA1, Mon 27 Nov 2006 19:05:00 GMT, Key ID
a84edae89c800aca
Packager : http://bugs.opensuse.org
URL : http://www.mesa3d.org
Summary : Mesa is a 3-D graphics library with an API which is very
similar to that of OpenGL.*

[... snip ...]


Curious. Installed in 2006, so uninstalling X earlier today apparently
didn't uninstall it?

By your reckoning then there should be a libGLcore installed by the
NVidia RPMs?

$ rpm -qa --list *nvidia* | grep GLcore
/usr/X11R6/lib/libGLcore.so.1
/usr/X11R6/lib/libGLcore.so.1.0.9639

Uh-huh..

$ ls -lh /usr/X11R6/lib/libGLcore*
lrwxrwxrwx 1 root root 21 2008-01-19 17:33
/usr/X11R6/lib/libGLcore.so.1 -> libGLcore.so.1.0.9639
-rwxr-xr-x 1 root root 8.6M 2007-12-08 14:07
/usr/X11R6/lib/libGLcore.so.1.0.9639

Yep, and there they are (obviously need an updatedb since reinstalling).

So, presumably XOrg is loading the wrong one - i.e.
/usr/lib/libGLcore.so.1 instead of /usr/X11R6/lib/libGLcore.so.1
I'm inclined to think that at least one of installing X.Org then the
NVidia drivers and finally enabling 3D acceleration in SaX should have
fixed that, and even more puzzled about what happened to change the fact
that it has been working for yonks and now doesn't. Nevermind, given
that uninstalling X didn't uninstall Mesa I guess it's an orphan (especially as xorg-x11-server provides the same library at /usr/lib/xorg/modules/extensions/libGLcore.so) so I'll
go uninstall it now.

[time passes]... Apparently not, YaST tells me the list of things that would break is as long as your arm. Shame it doesn't tell you what they are -- e.g. the information that deleting this will break /ogre/ makes "what the bleep is 'ogre'? Maybe I do want to delete it too, maybe I don't!" a very relevant question at that point, but YaST doesn't tell you. Maybe that's fixed in 10.3? Nevermind, there's more than enough stuff in the list that I *know* I do want to keep.

OK, so no deleting Mesa. Hmm, how about messing up ld.so.conf such that
/usr/X11R6/lib/ comes before /usr/lib/ (which really feels *wrong* to
me) and hopefully the X server will just happen get the right libGLcore.so first...

More time passes... and ... BINGO!

Finally we have

$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4

Excellent! So many thanks for your help, which really got me pointed in the right direction. I definitely owe you a beer! And a raspberry to YaST which really should have sorted it out :(

It still feels wrong that when an arbitrary program wants to load a shared library it should look in the X Window directories before looking the standard libraries place, nor do I know how it got broken, but whatever. At least the kids can play games again.


Many thanks,
Chris R.
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx