[TCL] TCL Bindings Fail to Link
Open
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
I was doing a clean rebuild with more options on than normal. I got a linker error when building the TCL bindings:
[306/473] Linking CXX shared library lib/libcirct-tcl.dylib
FAILED: lib/libcirct-tcl.dylib
: && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -O2 -g -DNDEBUG -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk -mmacosx-version-min=13.6 -dynamiclib -Wl,-headerpad_max_install_names -o lib/libcirct-tcl.dylib -install_name @rpath/libcirct-tcl.dylib tools/circt/lib/Bindings/Tcl/CMakeFiles/circt-tcl.dir/circt_tcl.cpp.o lib/libCIRCTCAPIComb.a lib/libCIRCTCAPIESI.a lib/libCIRCTCAPIMSFT.a lib/libCIRCTCAPIHW.a lib/libCIRCTCAPISeq.a lib/libCIRCTCAPISV.a lib/libCIRCTCAPIFSM.a /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/lib/libtclstub8.5.a lib/libCIRCTCombTransforms.a lib/libCIRCTESI.a lib/libMLIRControlFlowDialect.a lib/libMLIRTranslateLib.a lib/libCIRCTMSFTTransforms.a lib/libCIRCTMSFT.a lib/libCIRCTSeqTransforms.a lib/libCIRCTSVTransforms.a lib/libMLIRCAPIIR.a lib/libMLIRBytecodeWriter.a lib/libMLIRBytecodeOpInterface.a lib/libMLIRParser.a lib/libMLIRBytecodeReader.a lib/libMLIRAsmParser.a lib/libCIRCTFSMTransforms.a lib/libCIRCTFSMToSV.a lib/libCIRCTFSM.a lib/libCIRCTSeq.a lib/libCIRCTSV.a lib/libCIRCTComb.a lib/libCIRCTHW.a lib/libMLIRFuncDialect.a lib/libMLIRArithDialect.a lib/libMLIRCastInterfaces.a lib/libMLIRDialect.a lib/libMLIRInferIntRangeCommon.a lib/libMLIRUBDialect.a lib/libCIRCTSupport.a lib/libMLIRTransforms.a lib/libMLIRCopyOpInterface.a lib/libMLIRMemorySlotInterfaces.a lib/libMLIRRuntimeVerifiableOpInterface.a lib/libMLIRTransformUtils.a lib/libMLIRSubsetOpInterface.a lib/libMLIRValueBoundsOpInterface.a lib/libMLIRDestinationStyleOpInterface.a lib/libMLIRRewrite.a lib/libMLIRRewritePDL.a lib/libMLIRPDLToPDLInterp.a lib/libMLIRPass.a lib/libMLIRAnalysis.a lib/libMLIRLoopLikeInterface.a lib/libMLIRControlFlowInterfaces.a lib/libMLIRCallInterfaces.a lib/libMLIRInferIntRangeInterface.a lib/libMLIRDataLayoutInterfaces.a lib/libMLIRPresburger.a lib/libMLIRViewLikeInterface.a lib/libMLIRPDLInterpDialect.a lib/libMLIRFunctionInterfaces.a lib/libMLIRPDLDialect.a lib/libMLIRInferTypeOpInterface.a lib/libMLIRSideEffectInterfaces.a lib/libMLIRIR.a lib/libMLIRSupport.a lib/libLLVMCore.a lib/libLLVMBinaryFormat.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libLLVMTargetParser.a lib/libLLVMSupport.a -lm /opt/local/lib/libz.dylib /opt/local/lib/libzstd.dylib /opt/local/lib/libcurses.dylib lib/libLLVMDemangle.a && :
ld: warning: ignoring file '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tcl.framework/Versions/8.5/libtclstub8.5.a': fat file missing arch 'arm64', file has 'x86_64,arm64e'
ld: Undefined symbols:
_Tcl_InitStubs, referenced from:
_Circt_Init in circt_tcl.cpp.o
_tclStubsPtr, referenced from:
_Circt_Init in circt_tcl.cpp.o
operationTypeUpdateStringProc(Tcl_Obj*) in circt_tcl.cpp.o
circtTclFunction(void*, Tcl_Interp*, int, Tcl_Obj* const*) in circt_tcl.cpp.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tools/circt/lib/Bindings/Tcl/circt_tcl.cpp and the clean-build linker command for libcirct-tcl.dylib. Investigate the arm64 mismatch involving libtclstub8.5.a and confirm the fix with a clean arm64 rebuild; done means the TCL bindings link without the undefined symbols.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100