Bug 34210

Summary: Tcl port screws up tclConfig.sh
Product: Ports & Packages Reporter: Peter Eisentraut <peter_e>
Component: Individual Port(s)Assignee: Dirk Meyer <dinoex>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Peter Eisentraut 2002-01-23 16:50:01 UTC
In the port lang/tcl84, file files/patch-configure, revision 1.5 (might
apply to earlier revisions, other branches, other Tcl ports as well) you
set SHLIB_LD="ld -shared -x -soname \$@".  This gets substituted into
tclConfig.sh as TCL_SHLIB_LD which others software packages are supposed
to use to build with Tcl support.  This leads to two problems:

If I use TCL_SHLIB_LD to build a shared library linked against libtcl,
how do you know my makefile target is the soname I want?

tclConfig.sh isn't a makefile, it's a shell script.  Notice how some
lines in tclConfig.sh contain single-quoted variable references:  you're
supposed to "eval" each of these lines in a shell before using them, so
if you have a $@ in there you get completely wrong results.

Fix: 

Revert this change and patch the makefiles if you want the soname in
there. =OR= Make sure that this alteration of SHLIB_LD is reverted before
it's subsituted into TCL_SHLIB_LD.
How-To-Repeat: Install any recent version of PostgreSQL from source with Tcl support on
a recent FreeBSD.  Most likely to mess up a lot of other Tcl-using
programs as well.
Comment 1 Dirk Meyer freebsd_committer freebsd_triage 2002-01-27 09:12:40 UTC
Responsible Changed
From-To: freebsd-ports->dinoex

I will look into this.
Comment 2 Dirk Meyer freebsd_committer freebsd_triage 2002-01-27 14:25:02 UTC
State Changed
From-To: open->closed

A fix has been commited for tcl82 tcl83 and tcl84