|
From: Kevan H. <ha...@br...> - 2020-05-28 18:17:53
|
Greetings,
I'm trying to compile a 64-bit embedded TclTk 8.6.9 that will run on MacOS 10.15. I have a 10.12 and a 10.15 machine on my desk (okay, on my coffee table). On both machines, I am using the CLANG assembler and linker provided by Command Line Tools. Both machines have various SDKs in the folder /Developer/SDKs. I start with this build on my MacOS 10.12 machine:
export CFLAGS="-arch x86_64 -isysroot /Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.8"
make -C tcl8.6.9/macosx embedded
make -C tk8.6.9/macosx embedded
I get a fine 64-bit embedded Wish that runs well on 10.12. On 10.15, however, the Wish shell runs, but when I make buttons, they don't appear in their windows. When I expand a window, I get black screen in the added regions. So I try this on my MacOS 10.12 machine:
export CFLAGS="-arch x86_64 -isysroot /Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.12"
make -C tcl8.6.9/macosx embedded
make -C tk8.6.9/macosx embedded
The new Wish shell works great on 10.12, but suffers the same graphics failure on 10.15. I move to my 10.15 machine and I try to build with the 10.12 SDK, but the link fails. I try with 10.14 and 10.15 SDKs, and with no SDK or minimum macosx version specified, and in each case I get the saem link error, see below for full error output.
What has Apple done in 10.15 that renders a perfectly good 64-bit Wish shell useless?
Am I missing an essential compiler flag on 10.15?
Do I need a newer version of TclTk 8.6 to compile on 10.15? (I note that the Wish that comes with 10.15 is 8.5.18.)
Best, Kevan
----- Link Error ----
gcc -dynamiclib -pipe -Os -DNDEBUG -Wall -fno-common -prebind -headerpad_max_install_names -Wl,-search_paths_first -Wl,-single_module -current_version 4.1.2 -compatibility_version 4.1.2 -o libitcl4.1.2.dylib itcl2TclOO.o itclBase.o itclBuiltin.o itclClass.o itclCmd.o itclEnsemble.o itclHelpers.o itclInfo.o itclLinkage.o itclMethod.o itclObject.o itclParse.o itclStubs.o itclStubInit.o itclResolve.o itclTclIntStubsFcn.o itclUtil.o itclMigrate2TclCore.o itclTestRegisterC.o -L/Users/kevan/Desktop/build/tcl/Deployment -ltclstub8.6
ld: warning: option -prebind is obsolete and being ignored
ld: warning: ignoring file /Users/kevan/Desktop/build/tcl/Deployment/libtclstub8.6.a, building for macOS-x86_64 but attempting to link with file built for unknown-unsupported file format ( 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A 0x2F 0x20 0x20 0x20 0x20 0x20 0x20 0x20 )
Undefined symbols for architecture x86_64:
"_TclOOInitializeStubs", referenced from:
_Initialize in itclBase.o
"_Tcl_InitStubs", referenced from:
_Initialize in itclBase.o
"_tclIntStubsPtr", referenced from:
_Itcl_NRRunCallbacks in itcl2TclOO.o
_Tcl_InvokeClassProcedureMethod in itcl2TclOO.o
_Itcl_SelfCmd in itcl2TclOO.o
_Itcl_FindClassesCmd in itclCmd.o
_Itcl_FindObjectsCmd in itclCmd.o
_Itcl_ScopeCmd in itclCmd.o
_Itcl_CodeCmd in itclCmd.o
...
"_tclOOIntStubsPtr", referenced from:
_Itcl_PublicObjectCmd in itcl2TclOO.o
_Itcl_NewProcClassMethod in itcl2TclOO.o
_Itcl_NewProcMethod in itcl2TclOO.o
_Itcl_NewForwardClassMethod in itcl2TclOO.o
"_tclOOStubsPtr", referenced from:
_RootCallProc in itclBase.o
_Initialize in itclBase.o
_Itcl_BiConfigureCmd in itclBuiltin.o
_Itcl_BiCgetCmd in itclBuiltin.o
_ItclUnknownGuts in itclBuiltin.o
_Itcl_BiInstallComponentCmd in itclBuiltin.o
_Itcl_BiMyMethodCmd in itclBuiltin.o
...
"_tclStubsPtr", referenced from:
_Tcl_InvokeClassProcedureMethod in itcl2TclOO.o
_Itcl_InvokeEnsembleMethod in itcl2TclOO.o
_EnsembleErrorProc in itcl2TclOO.o
_FreeProcedureMethod in itcl2TclOO.o
_Itcl_SelfCmd in itcl2TclOO.o
_FreeCommand in itcl2TclOO.o
_Itcl_Init in itclBase.o
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [libitcl4.1.2.dylib] Error 1
make[3]: *** [packages] Error 2
make[2]: *** [build-tcl] Error 2
make[1]: *** [tcl] Error 2
make: *** [embedded-deploy] Error 2
--
Kevan Hashemi, Electrical Engineer
Physics Department, Brandeis University
http://www.bndhep.net
|