Subject Re: [firebird-support] libfbclient.so: cannot handle TLS data
Author Milan Babuskov
Nando Dessena wrote:
>> [root@saert2 GSR]# ldd GSRServer
>> /lib/libNoVersion.so.1 (0x00a31000)
>> libpthread.so.0 => /lib/libpthread.so.0 (0x00d86000)
>
> I think there lies the problem. I don't know how to force the Kylix
> application to load the NPTL threading library, so when NTPL
> libfbclient is dynamically loaded I get some sort of conflict. Does
> that make sense?

Yes. When it loads fbclient, it requests some NPTL stuff from the
threading library (which is already loaded), but that library does not
support it. That's why you get the error message: cannot handle TLS data.

The easiest way to work around this is to take fbclient.so from non-NPTL
Firebird package and force your application to load it by setting up
LD_LIBRARY_PATH environment variable to some custom directory where
extracted fbclient.so resides. Hopefully, Kylix is not trying to play
too smart and is using system default functions (which respect this env.
variable) to load dynamic libraries.

I usually put all that into a shell script and run executable via that:

#!/bin/bash
LD_LIBRARY_PATH=/path/to/dir/with/non-NPTL/fbclient /path/to/GSRServer

Of course, check whether LD_LIBRARY_PATH already has some value, and if
it does, then prepend the path, like this:

LD_LIBRARY_PATH=/path/to/dir/with/non-NPTL/fbclient:$LD_LIBRARY_PATH

HTH

--
Milan Babuskov
http://www.flamerobin.org
http://www.guacosoft.com