|
From: Joe E. <jen...@fl...> - 2005-09-29 00:07:30
|
Kevin Walzer wrote:
> I've done a bit more investigating on building Tile as a universal
> binary on OS X. It seems like an issue with TkAqua rather than Tile,
> because I'm seeing the same issues trying to build another extension
> (tktreectrl) as a universal binary.
> [...]
> Trying again as a universal binary (building against the 10.4 sdk, -arch
> i386, -arch ppc, and so on), Tile (and tktreectrl) got all the way
> through the builds before dying with this error message:
> ld: Undefined symbols:
> _tclStubsPtr
> _Tcl_InitStubs
> _Tk_InitStubs
> _tkStubsPtr
> _tkIntXlibStubsPtr
> _tkIntStubsPtr
> _tkIntPlatStubsPtr
> _tkPlatStubsPtr
> [...]
> I'm not sure where these symbols are supposed to come in: perhaps
> someone with more knowledge than me would find this error message useful?
That I can help with: all of the above come from the Tcl (resp Tk)
stubs libraries, {lib}{tcl|tk}stub{8.4|84|.8.4}.{a|lib}.
On OSX, IIRC, make sure the link line includes '-ltkstub8.4' and
'-ltclstub8.4'. Also make sure that libXXXstubX.Y.a appear in
the linker search path; if not, add "-L" flags and/or
"-framework Tcl" / "-framework Tk" flags to the link line.
Also: did you run "./configure ; make" in the top-level tile directory
or in tile/generic? Whichever one you tried and it didn't work,
try the other one and see if you have better luck. The top-level
build structure is "TEA-compliant" (meaning: works for Jeff);
the one in generic/ is "Modified TEA" (meaning: works for me).
Usually one or the other will eventually spit out a working
shared library if you kick it hard enough, but since neither
Jeff nor I have a Macintosh we can't make any guarantees. Sorry.
> Earlier, the build was dying after complaining that some defintions in
> tkMacOSXInt.h had errors. Looking at the code in question, I noticed
> that the lines began with the phrase "Module Scope," like this:
>
> ~ MODULE_SCOPE int TkMacOSXUseAntialiasedText(Tcl_Interp *interp, int
> enable);
That one I can't help with. I have a suspicion that the MODULE_SCOPE
macro is just a bad idea that will eventually be expunged, but don't
know all the details yet. Sorry.
--Joe English
|