9 unresolved symbols used by generic/tclTest.c
From: David Gravereaux (davygrvy_at_pobox.com)
Date: 10/25/04
- Next message: lvirden_at_gmail.com: "Re: proposal for alternate to the option database"
- Previous message: Cameron Laird: "Re: How to call a C function from a TCL script?"
- Next in thread: Vince Darley: "Re: 9 unresolved symbols used by generic/tclTest.c"
- Reply: Vince Darley: "Re: 9 unresolved symbols used by generic/tclTest.c"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Mon, 25 Oct 2004 11:37:27 -0700
link -nologo -machine:IX86 -release -opt:ref -opt:icf,3 -opt:nowin98 -su
bsystem:console -stack:2300000 -out:.\Release\tcltest.exe kernel32.lib user32.li
b .\Release\tcl_Dynamic\tclTest.obj .\Release\tcl_Dynamic\tclTestObj.obj .\Relea
se\tcl_Dynamic\tclTestProcBodyObj.obj .\Release\tcl_Dynamic\tclThreadTest.obj .\
Release\tcl_Dynamic\tclWinTest.obj .\Release\tcl_Dynamic\testMain.obj .\Release\
tcl85.lib
tclTest.obj : error LNK2001: unresolved external symbol _TclpObjRemoveDirectory@
12
tclTest.obj : error LNK2001: unresolved external symbol _TclpObjCopyDirectory@12
tclTest.obj : error LNK2001: unresolved external symbol _TclpObjCreateDirectory@
4
tclTest.obj : error LNK2001: unresolved external symbol _TclpObjDeleteFile@4
tclTest.obj : error LNK2001: unresolved external symbol _TclpObjCopyFile@8
tclTest.obj : error LNK2001: unresolved external symbol _TclpObjRenameFile@8
tclTest.obj : error LNK2001: unresolved external symbol _TclpObjStat@8
tclTest.obj : error LNK2001: unresolved external symbol _TclpObjAccess@8
tclTest.obj : error LNK2001: unresolved external symbol _TclpOpenFileChannel@16
.\Release\tcltest.exe : fatal error LNK1120: 9 unresolved externals
NMAKE : fatal error U1077: 'link' : return code '0x460'
Stop.
In working on a patch to allow strictness for how Tcl exports symbols that are
only in the Stubs table (tip#60), I just discovered a problem. generic/tclTest.c
is calling functions that ARE NOT EXPORTED. Because tclTest.obj is linked into
the shell (tclAppInit.c; tcltest.exe), there is no visibility to those 9
functions because they live hidden (unexported) in tcl85.dll. It only works
today because of the side-effect of the EXTERN macro exporting functions from
the library which has never been correct.
The proper fix, I think, is to export them through the internal Stubs table.
Anyone have an opinion on this?
FYI: TIP#60 reduces the exports to 695 from 970. The above 9 function are part
of the 275 that are not "blessed" to be exported.
-- David Gravereaux <davygrvy@pobox.com> [species: human; planet: earth,milkyway(western spiral arm),alpha sector]
- Next message: lvirden_at_gmail.com: "Re: proposal for alternate to the option database"
- Previous message: Cameron Laird: "Re: How to call a C function from a TCL script?"
- Next in thread: Vince Darley: "Re: 9 unresolved symbols used by generic/tclTest.c"
- Reply: Vince Darley: "Re: 9 unresolved symbols used by generic/tclTest.c"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]