Re: [INTERFACES] Configuration & libpgtcl.so problems in PostgreSQL 6.3.2 on Linux - Mailing list pgsql-interfaces

From Kristofer A. E. Peterson
Subject Re: [INTERFACES] Configuration & libpgtcl.so problems in PostgreSQL 6.3.2 on Linux
Date
Msg-id 353C02A7.3B8AC206@taconic.net
Whole thread Raw
In response to Re: [INTERFACES] Configuration & libpgtcl.so problems in PostgreSQL 6.3.2 on Linux  (Alvin van Raalte <alvin@camberlo.demon.co.uk>)
List pgsql-interfaces
Alvin van Raalte wrote:
>
> I think we must be the only people left using tcl under Linux. This
> hasn't worked for at least a month. In fact I cant recall any 6.3
> version working.
>
> However attached is a patch that I submitted a while ago that fixes the
> problem.
>
> Alvin.
>
>   ------------------------------------------------------------------------
>
>                                Name: postgresql-patch-7
>    postgresql-patch-7          Type: Plain Text (text/plain)
>                         Description: postgresql-patch-7

Rather than applying that patch, it would probably be easier creating a
'Makefile.custom' file in the postgresql-6.3.2/src (which get included
by Makefile.global, and thus every Makefile in the tree). Set
LINUX_ELF=true in Makefile.custom, and you won't have to patch all of
the shared library makefiles. You can also specify CUSTOM_CC and
CUSTOM_COPT in Makefile.custom to specify your compiler and compile
flags, respectively.

As for libpgtcl.so and unresolved symbols, I run a Redhat 5.0 system
where the crypt() function lives in its own library (libcrypt) and not
libc. libpgtcl.so is linked to libpq.so, which is statically linked.
crypt() is probably used by libpq.so for passwords, etc, but since
libpq.so is *not* linked with libcrypt, you must link libcrypt.so as
well libpq.so into your app. The Tk shell, wish8.0, is *not* linked to
libcrypt.so. Thus, when pgaccess.tcl loads the libpgtcl.so library, the
system can't resolve the calls to crypt(). One solution is to run
pgaccess.tcl with pgtksh, which *is* linked with libcrypt.so. Just
change the first line of pgaccess.tcl to #!/usr/local/pgsql/bin/pgtksh
(or where ever you installed postgresql). You could also link
libpgtcl.so manually, adding the '-lcrypt' crypt option, which would let
you run pgaccess.tcl and any other postgresql tcl scripts with wish and
tclsh.

Hope this helps...

- Kris

pgsql-interfaces by date:

Previous
From: Alvin van Raalte
Date:
Subject: Re: [INTERFACES] Configuration & libpgtcl.so problems in PostgreSQL 6.3.2 on Linux
Next
From: Rudi Heitbaum
Date:
Subject: Re: [INTERFACES] Re: ODBC FAQ