llvm / circt

Circuit IR Compilers and Tools
https://circt.org
Other
1.57k stars 277 forks source link

[TCL] TCL Bindings Fail to Link #6681

Open seldridge opened 4 months ago

seldridge commented 4 months ago

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)
dtzSiFive commented 4 months ago

Looks like something in your toolchain / build env is wrong?

(SNIP)/libtclstub8.5.a': fat file missing arch 'arm64', file has 'x86_64,arm64e'

Can you build anything else against TCL (stub library) on your system for that arch...?