Re: [INTERFACES] crypt not included when compiling libpgtcl !!!!!!! - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [INTERFACES] crypt not included when compiling libpgtcl !!!!!!!
Date
Msg-id 15411.910366023@sss.pgh.pa.us
Whole thread Raw
In response to Re: [INTERFACES] crypt not included when compiling libpgtcl !!!!!!!  (Constantin Teodorescu <teo@flex.ro>)
List pgsql-hackers
Constantin Teodorescu <teo@flex.ro> writes:
> Tom Lane wrote:
>> Would you check whether it works to add the following patch to
>> src/interfaces/libpq's Makefile, and then build libpgtcl *without*
>> a reference to crypt?  (I can't test it here since crypt is part of
>> libc on my machine...)
>
> [ Still doesn't work ]

Odd.  Perhaps your system doesn't support libraries referring to other
shared libraries?  (Seems unlikely, but...)  In that case you'd be
getting the static libpq.a bound into libpgtcl.so, minus crypt of
course, and then this would happen.

If that's what's happening you should easily be able to tell from the
sizes of libpgtcl.so and libpq.so.  On my machine, libpgtcl is actually
smaller than libpq (about half as big, in fact).  If libpq is getting
bound into libpgtcl.so then libpgtcl.so would have to be bigger than
libpq.so.  Which one is bigger on your machine?

Also, do you have any sort of utility that shows directly what a
program's shared library requirements are?  For example, on HPUX
I can do

$ chatr /usr/local/pgsql/bin/pgtclsh
/usr/local/pgsql/bin/pgtclsh:
         shared executable
         shared library dynamic path search:
             SHLIB_PATH     disabled  second
             embedded path  enabled   first  /usr/local/pgsql/lib
         shared library list:
             static    pgtclsh
             dynamic   ../../interfaces/libpgtcl/libpgtcl.sl
             dynamic   ../../interfaces/libpq/libpq.sl
             dynamic   /usr/lib/libdld.sl
             dynamic   /lib/libcurses.sl
             dynamic   /lib/libc.sl
         shared library binding:
             deferred

$ chatr /usr/local/pgsql/lib/libpgtcl.sl
/usr/local/pgsql/lib/libpgtcl.sl:
         shared library
         shared library list:
             dynamic   ../libpq/libpq.sl


On Linux I think the corresponding command is "ldd".

            regards, tom lane

pgsql-hackers by date:

Previous
From: "Thomas G. Lockhart"
Date:
Subject: Re: [HACKERS] PL/pgSQL a great procedural language for PostgreSQL
Next
From: Constantin Teodorescu
Date:
Subject: Re: [INTERFACES] crypt not included when compiling libpgtcl !!!!!!!