$libdir under linux

Started by Marios Vodasover 15 years ago2 messages
#1Marios Vodas
mvodas@gmail.com

I want to create this function:
CREATE OR REPLACE FUNCTION myfunction(cstring)
RETURNS cstring AS
'$libdir/mylib','myfunction'
LANGUAGE 'C' IMMUTABLE STRICT;

In windows this is working fine and $libdir is substituted by the actual
path. In linux it is not substituted!
This is the error I get:
ERROR: could not access file "$libdir/mylib": No such file or directory
SQL state: 58P01

How do I fix it?

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Marios Vodas (#1)
Re: $libdir under linux

Marios Vodas <mvodas@gmail.com> writes:

I want to create this function:
CREATE OR REPLACE FUNCTION myfunction(cstring)
RETURNS cstring AS
'$libdir/mylib','myfunction'
LANGUAGE 'C' IMMUTABLE STRICT;

In windows this is working fine and $libdir is substituted by the actual
path. In linux it is not substituted!

I rather doubt that, considering that it works fine for everybody else.

This is the error I get:
ERROR: could not access file "$libdir/mylib": No such file or directory

So is mylib.so actually there in the library directory? (Try
"pg_config --pkglibdir" to confirm which directory that is.)
If so, try ldd on it --- maybe the problem is with some library
it references, not mylib.so itself.

regards, tom lane