Subject: lang/tcl broken on MacOS X (10.2.8) again.
To: None <>
From: John D. Baker <>
List: tech-pkg
Date: 01/29/2005 14:54:17
lang/tcl fails to link on MacOS X 10.2.8 as follows:

libtool  --mode=3Dlink gcc -pipe -pipe -rpath /usr/pkg/lib -o  =
regcomp.lo regexec.lo regfree.lo regerror.lo tclAlloc.lo tclAsync.lo tclBas=
ic.lo tclBinary.lo tclCkalloc.lo tclClock.lo tclCmdAH.lo tclCmdIL.lo tclCmd=
MZ.lo tclCompCmds.lo tclCompExpr.lo tclCompile.lo tclDate.lo tclEncoding.lo=
 tclEnv.lo tclEvent.lo tclExecute.lo tclFCmd.lo tclFileName.lo tclGet.lo tc=
lHash.lo tclHistory.lo tclIndexObj.lo tclInterp.lo tclIO.lo tclIOCmd.lo tcl=
IOGT.lo tclIOSock.lo tclIOUtil.lo tclLink.lo tclListObj.lo tclLiteral.lo tc=
lLoad.lo tclMain.lo tclNamesp.lo tclNotify.lo tclObj.lo tclPanic.lo tclPars=
e.lo tclParseExpr.lo tclPipe.lo tclPkg.lo tclPosixStr.lo tclPreserve.lo tcl=
Proc.lo tclRegexp.lo tclResolve.lo tclResult.lo tclScan.lo tclStringObj.lo =
tclThread.lo tclThreadAlloc.lo tclThreadJoin.lo tclStubInit.lo tclStubLib.l=
o tclTimer.lo tclUtf.lo tclUtil.lo tclVar.lo tclUnixChan.lo tclUnixEvent.lo=
 tclUnixFCmd.lo tclUnixFile.lo tclUnixPipe.lo tclUnixSock.lo tclUnixTime.lo=
 tclUnixInit.lo tclUnixThrd.lo tclUnixNotfy.lo tclLoadDyld.lo tclMacOSXBund=
le.lo -framework CoreFoundation  -compatibility_version 8.4 -current_versio=
n 8.4 -install_name /usr/pkg/lib/libtcl84.dylib -prebind -seg1addr 0xa00000=
0   -version-info 1:0
gcc -pipe -dynamiclib ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o=
 .libs/libtcl84.1.0.0.dylib  .libs/regcomp.o .libs/regexec.o .libs/regfree.=
o .libs/regerror.o .libs/tclAlloc.o .libs/tclAsync.o .libs/tclBasic.o .libs=
/tclBinary.o .libs/tclCkalloc.o .libs/tclClock.o .libs/tclCmdAH.o .libs/tcl=
CmdIL.o .libs/tclCmdMZ.o .libs/tclCompCmds.o .libs/tclCompExpr.o .libs/tclC=
ompile.o .libs/tclDate.o .libs/tclEncoding.o .libs/tclEnv.o .libs/tclEvent.=
o .libs/tclExecute.o .libs/tclFCmd.o .libs/tclFileName.o .libs/tclGet.o .li=
bs/tclHash.o .libs/tclHistory.o .libs/tclIndexObj.o .libs/tclInterp.o .libs=
/tclIO.o .libs/tclIOCmd.o .libs/tclIOGT.o .libs/tclIOSock.o .libs/tclIOUtil=
=2Eo .libs/tclLink.o .libs/tclListObj.o .libs/tclLiteral.o .libs/tclLoad.o =
=2Elibs/tclMain.o .libs/tclNamesp.o .libs/tclNotify.o .libs/tclObj.o .libs/=
tclPanic.o .libs/tclParse.o .libs/tclParseExpr.o .libs/tclPipe.o .libs/tclP=
kg.o .libs/tclPosixStr.o .libs/tclPreserve.o .libs/tclProc.o .libs/tclRegex=
p.o .libs/tclResolve.o .libs/tclResult.o .libs/tclScan.o .libs/tclStringObj=
=2Eo .libs/tclThread.o .libs/tclThreadAlloc.o .libs/tclThreadJoin.o .libs/t=
clStubInit.o .libs/tclStubLib.o .libs/tclTimer.o .libs/tclUtf.o .libs/tclUt=
il.o .libs/tclVar.o .libs/tclUnixChan.o .libs/tclUnixEvent.o .libs/tclUnixF=
Cmd.o .libs/tclUnixFile.o .libs/tclUnixPipe.o .libs/tclUnixSock.o .libs/tcl=
UnixTime.o .libs/tclUnixInit.o .libs/tclUnixThrd.o .libs/tclUnixNotfy.o .li=
bs/tclLoadDyld.o .libs/tclMacOSXBundle.o  -L/Volumes/NetBSD/tmp/pkgsrc/lang=
/tcl/work/.buildlink/lib -ltcl84  -install_name  /usr/pkg/lib/libtcl84.1.dy=
lib -Wl,-compatibility_version -Wl,2 -Wl,-current_version -Wl,2.0
/usr/bin/libtool: can't locate file for: -ltcl84
/usr/bin/libtool: file: -ltcl84 is not an object file (not allowed in a lib=
*** Error code 1

bmake: stopped in /Volumes/NetBSD/tmp/pkgsrc/lang/tcl/work/tcl8.4.9/unix

I've tracked the break down to the following CVS commit (as logged in

Subject: CVS commit: pkgsrc/mk/wrapper
To: None <>
From: Johnny C. Lam <>
List: pkgsrc-changes
Date: 01/18/2005 17:25:13

Module Name:=09pkgsrc
Committed By:=09jlam
Date:=09=09Tue Jan 18 17:25:13 UTC 2005

Modified Files:
=09pkgsrc/mk/wrapper: NOTES logic
Added Files:
=09pkgsrc/mk/wrapper: arg-pp-darwin-gcc arg-pp-main arg-pp-mipspro-cc

Log Message:
Split out the argument pre-processing logic into its own script
arg-pp-main, and allow for wrapper-specific hooks to extend the
pre-processing through _WRAP_ARG_PP.<wrappee>.  Move the Darwin
GCC-related preprocessing into arg-pp-darwin-gcc, and create a
arg-pp-mipspro-cc that understands -LANG:<feature> and -LIST:<feature>
so that they're not confused with the usual -Ldir options.

An update from 5 minutes prior to this commit builds without problems.
updates immediately after and through -current all fail as shown above
on MacOS X 10.2.8.

Other packages (nmap 3.78) also fail on MacOS X 10.2.8 following this
commit, but it was lang/tcl that originally caught my attention.

A recent update built lang/tcl without problems on NetBSD/i386-2.99.10.

John D. Baker, KN5UKS                    NetBSD     Darwin/MacOS X
jdbaker(at)mylinuxisp(dot)com                 OpenBSD            FreeBSD
BSD -- It just sits there and _works_!