William Robinson wrote:
Hi. I've just been going through this problem aswell:
pd -rt -lib Gem
and it gives the error:
/usr/lib/pd/extra/Gem.pd_linux: libnvidia-tls.so.1: cannot handle TLS data Gem: can't load library
So it looks like it found the library fine, but it has an issue with the nvidia drivers? Can someone point me in the right direction?
I found a strange solution that worked here: http://imgseek.sourceforge.net/faq.html#faq3. This has been irritating me for a couple of days. I thought I should share this as it was unresolved on this list.
it may be unresolved on this list because it is not a problem of pd but about nvidia's drivers and TLS (thread local storage)
the problem is about your kernel: 2.6.x allows using TLS while 2.4.x does not.
now when you are running a 2.4-kernel you cannot use nvidia's TLS-libraries and thus you have to remove them. i am not sure, but i think it is the other way round too: when using a TLS-enabled kernel (2.6) you have to use the TLS-enabled libraries and thus you have to add them.
debian solves this via dynamic creation/deletion of symlinks into/from /usr/lib/tls they are using a helper-application "tls_test", but i think this is added by the debian-maintainer
probably other distributions (should) do it alike ??
mfg.a.sdr IOhannes
PS: this is from nvidia-glx/README.Debian
Under 2.6.x kernels a new TLS method is used and different libraries are required. NVIDIA provides these libraries and at boot time (via /etc/init.d/nvidia-glx) a test is performed on your system to see if your require these extra libraries. Having the TLS libraries installed (in /usr/lib/tls and libglx.so) running under a 2.4.x kernel will cause problems when running GL applications. Likewise, not having these libraries installed under 2.6.x might prevent X from starting at all.
Simple Explanation: To switch back and forth between the two systems simply run:
/etc/init.d/nvidia-glx start
This is run automatically at boot time.
To force a certain setting (e.g. you may have a 2.4 kernel patched for NPTL) place USE_TLS=1 in /etc/defaults/nvidia-glx for using the nvidia tls libraries. USE_TLS=0 for not using tls libraries. This isn't normally necessary for most users.
What Happens: Symlinks are created in /usr/lib/tls from libraries installed in /usr/lib/nvidia. Also the libglx.so.VERSION in /usr/X11R6/lib/modules/extensions/ is symlinked to a tls-enabled one.