llvm / llvm/circt

[TCL] TCL Bindings Fail to Link

Open
#6,681 1 comment 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.