Re: pltlc and pltlcu problems - Mailing list pgsql-hackers

From Brent Verner
Subject Re: pltlc and pltlcu problems
Date
Msg-id 20020120073637.A10068@rcfile.org
Whole thread Raw
In response to Re: pltlc and pltlcu problems  (Brent Verner <brent@rcfile.org>)
Responses Re: pltlc and pltlcu problems
List pgsql-hackers
[2002-01-20 23:24] Murray Prior Hobbs said:
| Brent Verner wrote:
| 
| >[2002-01-19 19:40] Murray Prior Hobbs said:
| >| 
| >| i have had no trouble loading and using the pgpgsql language - and it 
| >| lives in exactly the same place
| >| 
| >| i've done as you suggested though - here is the output
| >
| >Indeed.  I just got finished installing a chroot image of 
| >redhat-7.2 to test this.  I am seeing the same Tcl_CreateInterp
| >problem you mentioned earlier.  The pltcl language does not work 
| >even from the 7.2b3 rpms.  Can someone verify that pltcl works on
| >their stock redhat 7.2 system?
| >
| >Are there a known bugs in the stock 7.2 binutils or any other part
| >of the toolchain that might be causing this problem?  Most notably
| >is the absence of pltcl.so being linked to libtcl.so.  Could this
| >be a problem with redhat's tcl package?
| >
| >Monty, are you by chance running in a chroot?
| >
| if you mean me (Murray) nope - it's a bog standard RedHat 7.2 install

sorry!  I know a guy named "Monty Hobbs"... I'm really too tired ;-)

| but i have installed Tcl from the sources from scratch - 8.3.4

Indeed I've tracked the problem down to the line that links
the pltcl.so library:

make[3]: Entering directory `/usr/local/cvs/pgsql/src/pl/tcl'
/bin/sh mkMakefile.tcldefs.sh '/usr/lib/tclConfig.sh' 'Makefile.tcldefs'
make[3]: Leaving directory `/usr/local/cvs/pgsql/src/pl/tcl'
make[3]: Entering directory `/usr/local/cvs/pgsql/src/pl/tcl'
gcc -pipe -O -D__NO_STRING_INLINES -D__NO_MATH_INLINES -fPIC -I../../../src/include  -DHAVE_UNISTD_H=1
-DHAVE_LIMITS_H=1-DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1
-DHAVE_UNISTD_H=1-DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1
-DHAVE_TM_GMTOFF=1-DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1
-DHAVE_SYS_IOCTL_H=1  -c -o pltcl.o pltcl.c
 
gcc -pipe -shared -Wl,-soname,libtcl.so.0 -o pltcl.so pltcl.o -L/usr/lib -ltcl -ldl  -lieee -lm -lc
       ^^^^^^^^^^^
 

IIRC, this was changed to workaround another problem with the
tcl client library having name conflicts.  This value (TCL_SHLIB_LD)
comes directly from the /usr/lib/tclConfig.sh file supplied by the 
rpm.  You can add the following line to src/pl/tcl/Makefile
below "-include Makefile.tcldefs"
 TCL_SHLIB_LD = gcc -shared

to override the erronious value supplied by the system's tclConfig.sh.

| but just because i'm ignorant of many things - how would i check if i 
| was running in chroot environment?

not sure.  I always know when I am, because I setup the chroot.
Some web hosts will give you a chroot as well, but if you are
developing on your own workstation, there is little chance of
you being in a chroot and not knowing it.

hth. b

-- 
"Develop your talent, man, and leave the world something. Records are 
really gifts from people. To think that an artist would love you enough
to share his music with anyone is a beautiful thing."  -- Duane Allman


pgsql-hackers by date:

Previous
From: Brent Verner
Date:
Subject: Re: pltlc and pltlcu problems
Next
From: Tom Lane
Date:
Subject: Re: pltlc and pltlcu problems