I thought I'd tried pgAccess back in the dim past with success, but as
of current sources it fails on HPUX 10.20 and Tcl 8.3.2:

$ pgaccess regression
Error in startup script: couldn't load file "libpgtcl.sl": no such file or directory
    while executing
"load libpgtcl[info sharedlibextension]"
    (procedure "main" line 3)
    invoked from within
"main $argc $argv"
    (file "/home/postgres/testversion/share/pgaccess/main.tcl" line 249)
$

The problem here is that Tcl does not do dynamic path searching, even
if you give it the necessary environment-variable setting:

$ SHLIB_PATH="/home/postgres/testversion/lib:." wish
% load libpgtcl.sl
/usr/lib/dld.sl: Can't open shared library: libpgtcl.sl
/usr/lib/dld.sl: No such file or directory
couldn't load file "libpgtcl.sl": no such file or directory
% load /home/postgres/testversion/lib/libpgtcl.sl
[ works fine ]

And the reason for *that* is that Tcl doesn't pass the DYNAMIC_PATH flag
to shl_load().  I find that sourceforge.net already has a couple of bug
reports posted on this, so perhaps the Tcl guys will get their act
together and add the flag in Tcl 8.4, but in the meantime I think we
have very little choice except to specify the full path to the library
in pgaccess' load command.

Does anyone object if I modify pgaccess so that it always specifies the
full path to the library?  That seems like it'd be a good idea even on
OSes without this quirk, because it'd ensure getting the matching
version of libpgtcl and libpq even if your SHLIB_PATH/LD_LIBRARY_PATH
points to some other version.

                        regards, tom lane

Reply via email to