The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.51k stars 528 forks source link

OpenROAD compilation fails on Ububtu #428

Closed tamimcse closed 4 years ago

tamimcse commented 4 years ago

OpenROAD cannot link with CUDD. I have CUDD in /usr/local/lib/. I'm on Ubuntu 18.04. The output is as following:

.....
[ 97%] Linking CXX static library libOpenPhySyn.a
cd /home/tamim/OpenROAD/build/src/OpenPhySyn && /usr/local/bin/cmake -P CMakeFiles/OpenPhySyn.dir/cmake_clean_target.cmake
cd /home/tamim/OpenROAD/build/src/OpenPhySyn && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/OpenPhySyn.dir/link.txt --verbose=1
/usr/bin/ar qc libOpenPhySyn.a  CMakeFiles/OpenPhySyn.dir/src/Psn.cpp.o CMakeFiles/OpenPhySyn.dir/src/Exports.cpp.o CMakeFiles/OpenPhySyn.dir/src/SteinerTree.cpp.o CMakeFiles/OpenPhySyn.dir/src/PsnLogger.cpp.o CMakeFiles/OpenPhySyn.dir/src/DatabaseHandler.cpp.o CMakeFiles/OpenPhySyn.dir/src/PsnTransform.cpp.o CMakeFiles/OpenPhySyn.dir/src/TransformHandler.cpp.o CMakeFiles/OpenPhySyn.dir/src/TransformInfo.cpp.o CMakeFiles/OpenPhySyn.dir/src/FileUtils.cpp.o CMakeFiles/OpenPhySyn.dir/src/FilesystemLegacyHelpers.cpp.o CMakeFiles/OpenPhySyn.dir/src/StringUtils.cpp.o CMakeFiles/OpenPhySyn.dir/src/PsnGlobal.cpp.o CMakeFiles/OpenPhySyn.dir/src/PsnException.cpp.o CMakeFiles/OpenPhySyn.dir/src/PathPoint.cpp.o CMakeFiles/OpenPhySyn.dir/src/MakeOpenPhySyn.cpp.o CMakeFiles/OpenPhySyn.dir/CMakeFiles/Psn_lib_wrap.cc.o
/usr/bin/ranlib libOpenPhySyn.a
make[2]: Leaving directory '/home/tamim/OpenROAD/build'
[ 97%] Built target OpenPhySyn
make  -f src/CMakeFiles/openroad.dir/build.make src/CMakeFiles/openroad.dir/depend
make[2]: Entering directory '/home/tamim/OpenROAD/build'
[ 97%] Generating OpenRoadTclInitVar.cc
cd /home/tamim/OpenROAD/src && /home/tamim/OpenROAD/src/OpenSTA/etc/TclEncode.tcl /home/tamim/OpenROAD/build/src/OpenRoadTclInitVar.cc openroad_tcl_inits /home/tamim/OpenROAD/src/OpenSTA/tcl/Util.tcl OpenRoad.tcl /home/tamim/OpenROAD/src/ICeWall/src/ICeWall.tcl /home/tamim/OpenROAD/src/pdngen/src/PdnGen.tcl
cd /home/tamim/OpenROAD/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/tamim/OpenROAD /home/tamim/OpenROAD/src /home/tamim/OpenROAD/build /home/tamim/OpenROAD/build/src /home/tamim/OpenROAD/build/src/CMakeFiles/openroad.dir/DependInfo.cmake --color=
Scanning dependencies of target openroad
make[2]: Leaving directory '/home/tamim/OpenROAD/build'
make  -f src/CMakeFiles/openroad.dir/build.make src/CMakeFiles/openroad.dir/build
make[2]: Entering directory '/home/tamim/OpenROAD/build'
[ 97%] Building CXX object src/CMakeFiles/openroad.dir/OpenRoad.cc.o
cd /home/tamim/OpenROAD/build/src && /usr/bin/c++  -DOPENPHYSYN_TRANSFORM_BUILD -DOPENROAD_BUILD -I/home/tamim/OpenROAD/include -I/home/tamim/OpenROAD/src -I/home/tamim/OpenROAD/src/OpenSTA/include -I/home/tamim/OpenROAD/src/init_fp/include -I/home/tamim/OpenROAD/src/OpenDB/include -I/home/tamim/OpenROAD/src/replace/include -I/home/tamim/OpenROAD/src/opendp/include -I/home/tamim/OpenROAD/src/TritonMacroPlace/include -I/home/tamim/OpenROAD/src/FastRoute/include -I/home/tamim/OpenROAD/src/OpenPhySyn/include -I/home/tamim/OpenROAD/src/flute3 -I/home/tamim/OpenROAD/src/pdngen/include -I/home/tamim/OpenROAD/src/tapcell/include -I/home/tamim/OpenROAD/src/OpenRCX/include -I/home/tamim/OpenROAD/src/PDNSim/include -I/home/tamim/OpenROAD/src/antennachecker/include -I/home/tamim/OpenROAD/src/resizer/include -I/home/tamim/OpenROAD/src/ioPlacer/src -I/home/tamim/OpenROAD/src/ioPlacer/third_party/munkres -I/home/tamim/OpenROAD/src/OpenDB/include/opendb -I/home/tamim/OpenROAD/src/OpenDB/src/lef/lef -I/home/tamim/OpenROAD/src/OpenDB/src/def/def -I/home/tamim/OpenROAD/src/ioPlacer/third_party/munkres/src -I/home/tamim/OpenROAD/src/dbSta/include -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute -I/home/tamim/OpenROAD/src/FastRoute/third_party/pdrev/include -I/home/tamim/OpenROAD/src/FastRoute/src -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/include -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/flute -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/../pdrev -I/home/tamim/OpenROAD/src/TritonMacroPlace/src -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ABKCommon -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ParquetFP -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ABKCommon/src -I/home/tamim/OpenROAD/src/OpenPhySyn/include/OpenPhySyn -I/home/tamim/OpenROAD/src/OpenPhySyn/src -isystem /usr/include/eigen3  -O3 -DNDEBUG   -Wall -Wextra -pedantic -Wcast-qual -Wredundant-decls -Wformat-security -std=c++1z -o CMakeFiles/openroad.dir/OpenRoad.cc.o -c /home/tamim/OpenROAD/src/OpenRoad.cc
[ 97%] Building CXX object src/CMakeFiles/openroad.dir/Error.cc.o
cd /home/tamim/OpenROAD/build/src && /usr/bin/c++  -DOPENPHYSYN_TRANSFORM_BUILD -DOPENROAD_BUILD -I/home/tamim/OpenROAD/include -I/home/tamim/OpenROAD/src -I/home/tamim/OpenROAD/src/OpenSTA/include -I/home/tamim/OpenROAD/src/init_fp/include -I/home/tamim/OpenROAD/src/OpenDB/include -I/home/tamim/OpenROAD/src/replace/include -I/home/tamim/OpenROAD/src/opendp/include -I/home/tamim/OpenROAD/src/TritonMacroPlace/include -I/home/tamim/OpenROAD/src/FastRoute/include -I/home/tamim/OpenROAD/src/OpenPhySyn/include -I/home/tamim/OpenROAD/src/flute3 -I/home/tamim/OpenROAD/src/pdngen/include -I/home/tamim/OpenROAD/src/tapcell/include -I/home/tamim/OpenROAD/src/OpenRCX/include -I/home/tamim/OpenROAD/src/PDNSim/include -I/home/tamim/OpenROAD/src/antennachecker/include -I/home/tamim/OpenROAD/src/resizer/include -I/home/tamim/OpenROAD/src/ioPlacer/src -I/home/tamim/OpenROAD/src/ioPlacer/third_party/munkres -I/home/tamim/OpenROAD/src/OpenDB/include/opendb -I/home/tamim/OpenROAD/src/OpenDB/src/lef/lef -I/home/tamim/OpenROAD/src/OpenDB/src/def/def -I/home/tamim/OpenROAD/src/ioPlacer/third_party/munkres/src -I/home/tamim/OpenROAD/src/dbSta/include -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute -I/home/tamim/OpenROAD/src/FastRoute/third_party/pdrev/include -I/home/tamim/OpenROAD/src/FastRoute/src -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/include -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/flute -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/../pdrev -I/home/tamim/OpenROAD/src/TritonMacroPlace/src -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ABKCommon -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ParquetFP -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ABKCommon/src -I/home/tamim/OpenROAD/src/OpenPhySyn/include/OpenPhySyn -I/home/tamim/OpenROAD/src/OpenPhySyn/src -isystem /usr/include/eigen3  -O3 -DNDEBUG   -Wall -Wextra -pedantic -Wcast-qual -Wredundant-decls -Wformat-security -std=c++1z -o CMakeFiles/openroad.dir/Error.cc.o -c /home/tamim/OpenROAD/src/Error.cc
/home/tamim/OpenROAD/src/Error.cc: In constructor ‘ord::Exception::Exception(const char*, ...)’:
/home/tamim/OpenROAD/src/Error.cc:26:12: warning: ignoring return value of ‘int vasprintf(char**, const char*, __va_list_tag*)’, declared with attribute warn_unused_result [-Wunused-result]
   vasprintf(&what_, fmt, args);
   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/home/tamim/OpenROAD/src/Error.cc: In function ‘void ord::error(const char*, ...)’:
/home/tamim/OpenROAD/src/Error.cc:40:12: warning: ignoring return value of ‘int vasprintf(char**, const char*, __va_list_tag*)’, declared with attribute warn_unused_result [-Wunused-result]
   vasprintf(&what, fmt, args);
   ~~~~~~~~~^~~~~~~~~~~~~~~~~~
[ 97%] Building CXX object src/CMakeFiles/openroad.dir/OpenRoadTclInitVar.cc.o
cd /home/tamim/OpenROAD/build/src && /usr/bin/c++  -DOPENPHYSYN_TRANSFORM_BUILD -DOPENROAD_BUILD -I/home/tamim/OpenROAD/include -I/home/tamim/OpenROAD/src -I/home/tamim/OpenROAD/src/OpenSTA/include -I/home/tamim/OpenROAD/src/init_fp/include -I/home/tamim/OpenROAD/src/OpenDB/include -I/home/tamim/OpenROAD/src/replace/include -I/home/tamim/OpenROAD/src/opendp/include -I/home/tamim/OpenROAD/src/TritonMacroPlace/include -I/home/tamim/OpenROAD/src/FastRoute/include -I/home/tamim/OpenROAD/src/OpenPhySyn/include -I/home/tamim/OpenROAD/src/flute3 -I/home/tamim/OpenROAD/src/pdngen/include -I/home/tamim/OpenROAD/src/tapcell/include -I/home/tamim/OpenROAD/src/OpenRCX/include -I/home/tamim/OpenROAD/src/PDNSim/include -I/home/tamim/OpenROAD/src/antennachecker/include -I/home/tamim/OpenROAD/src/resizer/include -I/home/tamim/OpenROAD/src/ioPlacer/src -I/home/tamim/OpenROAD/src/ioPlacer/third_party/munkres -I/home/tamim/OpenROAD/src/OpenDB/include/opendb -I/home/tamim/OpenROAD/src/OpenDB/src/lef/lef -I/home/tamim/OpenROAD/src/OpenDB/src/def/def -I/home/tamim/OpenROAD/src/ioPlacer/third_party/munkres/src -I/home/tamim/OpenROAD/src/dbSta/include -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute -I/home/tamim/OpenROAD/src/FastRoute/third_party/pdrev/include -I/home/tamim/OpenROAD/src/FastRoute/src -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/include -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/flute -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/../pdrev -I/home/tamim/OpenROAD/src/TritonMacroPlace/src -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ABKCommon -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ParquetFP -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ABKCommon/src -I/home/tamim/OpenROAD/src/OpenPhySyn/include/OpenPhySyn -I/home/tamim/OpenROAD/src/OpenPhySyn/src -isystem /usr/include/eigen3  -O3 -DNDEBUG   -Wall -Wextra -pedantic -Wcast-qual -Wredundant-decls -Wformat-security -std=c++1z -o CMakeFiles/openroad.dir/OpenRoadTclInitVar.cc.o -c /home/tamim/OpenROAD/build/src/OpenRoadTclInitVar.cc
[ 98%] Building CXX object src/CMakeFiles/openroad.dir/Main.cc.o
cd /home/tamim/OpenROAD/build/src && /usr/bin/c++  -DOPENPHYSYN_TRANSFORM_BUILD -DOPENROAD_BUILD -I/home/tamim/OpenROAD/include -I/home/tamim/OpenROAD/src -I/home/tamim/OpenROAD/src/OpenSTA/include -I/home/tamim/OpenROAD/src/init_fp/include -I/home/tamim/OpenROAD/src/OpenDB/include -I/home/tamim/OpenROAD/src/replace/include -I/home/tamim/OpenROAD/src/opendp/include -I/home/tamim/OpenROAD/src/TritonMacroPlace/include -I/home/tamim/OpenROAD/src/FastRoute/include -I/home/tamim/OpenROAD/src/OpenPhySyn/include -I/home/tamim/OpenROAD/src/flute3 -I/home/tamim/OpenROAD/src/pdngen/include -I/home/tamim/OpenROAD/src/tapcell/include -I/home/tamim/OpenROAD/src/OpenRCX/include -I/home/tamim/OpenROAD/src/PDNSim/include -I/home/tamim/OpenROAD/src/antennachecker/include -I/home/tamim/OpenROAD/src/resizer/include -I/home/tamim/OpenROAD/src/ioPlacer/src -I/home/tamim/OpenROAD/src/ioPlacer/third_party/munkres -I/home/tamim/OpenROAD/src/OpenDB/include/opendb -I/home/tamim/OpenROAD/src/OpenDB/src/lef/lef -I/home/tamim/OpenROAD/src/OpenDB/src/def/def -I/home/tamim/OpenROAD/src/ioPlacer/third_party/munkres/src -I/home/tamim/OpenROAD/src/dbSta/include -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute -I/home/tamim/OpenROAD/src/FastRoute/third_party/pdrev/include -I/home/tamim/OpenROAD/src/FastRoute/src -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/include -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/flute -I/home/tamim/OpenROAD/src/FastRoute/third_party/fastroute/../pdrev -I/home/tamim/OpenROAD/src/TritonMacroPlace/src -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ABKCommon -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ParquetFP -I/home/tamim/OpenROAD/src/TritonMacroPlace/module/ABKCommon/src -I/home/tamim/OpenROAD/src/OpenPhySyn/include/OpenPhySyn -I/home/tamim/OpenROAD/src/OpenPhySyn/src -isystem /usr/include/eigen3  -O3 -DNDEBUG   -Wall -Wextra -pedantic -Wcast-qual -Wredundant-decls -Wformat-security -std=c++1z -o CMakeFiles/openroad.dir/Main.cc.o -c /home/tamim/OpenROAD/src/Main.cc
[ 98%] Linking CXX executable openroad
cd /home/tamim/OpenROAD/build/src && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/openroad.dir/link.txt --verbose=1
/usr/bin/c++  -O3 -DNDEBUG   CMakeFiles/openroad.dir/OpenRoad.cc.o CMakeFiles/openroad.dir/Error.cc.o CMakeFiles/openroad.dir/OpenRoadTclInitVar.cc.o CMakeFiles/openroad.dir/Main.cc.o  -o openroad  init_fp/src/libinit_fp.a openroad_swig.a replace/libreplace.a opendp/libopendp.a resizer/src/libresizer.a ../libioPlacer.a flute3/libflute.a dbSta/src/libdbSta.a ../../src/OpenSTA/app/libOpenSTA.a OpenDB/src/db/libopendb.a opendb_swig.a OpenRCX/src/libOpenRCX.a TritonCTS/libTritonCTS.a FastRoute/libFastRoute.a tapcell/src/libtapcell.a TritonMacroPlace/libTritonMacroPlace.a TritonMacroPlace/module/ParquetFP/libParquetFP.a TritonMacroPlace/module/ABKCommon/libABKCommon.a PDNSim/src/libpdnsim.a OpenDB/src/zlib/libzlib.a OpenDB/src/tm/libtm.a OpenDB/src/defin/libdefin.a OpenDB/src/defout/libdefout.a OpenDB/src/lefin/liblefin.a OpenDB/src/lefout/liblefout.a antennachecker/src/libantennachecker.a OpenDB/src/zutil/libzutil.a /usr/lib/x86_64-linux-gnu/libtcl.so OpenPhySyn/libOpenPhySyn.a /usr/lib/x86_64-linux-gnu/libz.so -pthread /usr/lib/x86_64-linux-gnu/librt.so ../libMunkres.a OpenRCX/src/openrcx-swig.a OpenDB/src/db/libopendb.a OpenDB/src/zlib/libzlib.a OpenDB/src/tm/libtm.a OpenDB/src/defin/libdefin.a ../../src/OpenDB/src/def/lib/libdef.a OpenDB/src/defout/libdefout.a OpenDB/src/lefout/liblefout.a -ltcl OpenDB/src/lefin/liblefin.a OpenDB/src/zutil/libzutil.a ../../src/OpenDB/src/lef/lib/liblef.a FastRoute/third_party/fastroute/libFastRoute4.1.a flute3/libflute.a FastRoute/third_party/pdrev/libpdrev.a /usr/lib/x86_64-linux-gnu/libtcl.so -ldl OpenPhySyn/src/StandardTransforms/BufferFanoutTransform/libbuffer_fanout.a OpenPhySyn/src/StandardTransforms/GateCloningTransform/libgate_clone.a OpenPhySyn/src/StandardTransforms/PinSwapTransform/libpin_swap.a OpenPhySyn/src/StandardTransforms/ConstantPropagationTransform/libconstant_propagation.a ../../src/OpenSTA/app/libOpenSTA.a -lstdc++fs 
../../src/OpenSTA/app/libOpenSTA.a(Sim.cc.o): In function `sta::Sim::Sim(sta::StaState*)':
Sim.cc:(.text+0x11da): undefined reference to `Cudd_Init'
../../src/OpenSTA/app/libOpenSTA.a(Sim.cc.o): In function `sta::Sim::clearSymtab() const':
Sim.cc:(.text+0x1612): undefined reference to `Cudd_RecursiveDeref'
../../src/OpenSTA/app/libOpenSTA.a(Sim.cc.o): In function `sta::Sim::~Sim()':
Sim.cc:(.text+0x16c1): undefined reference to `Cudd_CheckZeroRef'
Sim.cc:(.text+0x16f7): undefined reference to `Cudd_Quit'
../../src/OpenSTA/app/libOpenSTA.a(Sim.cc.o): In function `sta::Sim::ensureNode(sta::LibertyPort*) const':
Sim.cc:(.text+0x2194): undefined reference to `Cudd_bddNewVar'
Sim.cc:(.text+0x21f2): undefined reference to `Cudd_Ref'
../../src/OpenSTA/app/libOpenSTA.a(Sim.cc.o): In function `sta::Sim::funcBdd(sta::FuncExpr const*, sta::Instance const*) const':
Sim.cc:(.text+0x22d8): undefined reference to `Cudd_ReadLogicZero'
Sim.cc:(.text+0x2308): undefined reference to `Cudd_ReadOne'
Sim.cc:(.text+0x2318): undefined reference to `Cudd_Ref'
Sim.cc:(.text+0x241e): undefined reference to `Cudd_RecursiveDeref'
Sim.cc:(.text+0x2480): undefined reference to `Cudd_Ref'
Sim.cc:(.text+0x2494): undefined reference to `Cudd_RecursiveDeref'
Sim.cc:(.text+0x24a8): undefined reference to `Cudd_RecursiveDeref'
Sim.cc:(.text+0x24f9): undefined reference to `Cudd_bddOr'
Sim.cc:(.text+0x2549): undefined reference to `Cudd_bddAnd'
Sim.cc:(.text+0x2570): undefined reference to `Cudd_Ref'
Sim.cc:(.text+0x258e): undefined reference to `Cudd_bddXor'
Sim.cc:(.text+0x25b0): undefined reference to `Cudd_Ref'
Sim.cc:(.text+0x25c4): undefined reference to `Cudd_RecursiveDeref'
../../src/OpenSTA/app/libOpenSTA.a(Sim.cc.o): In function `sta::Sim::evalExpr(sta::FuncExpr const*, sta::Instance const*) const':
Sim.cc:(.text+0x2693): undefined reference to `Cudd_ReadLogicZero'
Sim.cc:(.text+0x26a8): undefined reference to `Cudd_ReadOne'
Sim.cc:(.text+0x26ce): undefined reference to `Cudd_RecursiveDeref'
Sim.cc:(.text+0x26ff): undefined reference to `Cudd_RecursiveDeref'
../../src/OpenSTA/app/libOpenSTA.a(Sim.cc.o): In function `sta::Sim::functionSense(sta::FuncExpr const*, sta::Pin const*, sta::Instance const*)':
Sim.cc:(.text+0x3494): undefined reference to `Cudd_NodeReadIndex'
Sim.cc:(.text+0x34a8): undefined reference to `Cudd_Increasing'
Sim.cc:(.text+0x34b7): undefined reference to `Cudd_ReadOne'
Sim.cc:(.text+0x34d5): undefined reference to `Cudd_Decreasing'
Sim.cc:(.text+0x34e9): undefined reference to `Cudd_ReadOne'
Sim.cc:(.text+0x3505): undefined reference to `Cudd_RecursiveDeref'
Sim.cc:(.text+0x3538): undefined reference to `Cudd_RecursiveDeref'
collect2: error: ld returned 1 exit status
src/CMakeFiles/openroad.dir/build.make:211: recipe for target 'src/openroad' failed
make[2]: *** [src/openroad] Error 1
make[2]: Leaving directory '/home/tamim/OpenROAD/build'
CMakeFiles/Makefile2:1083: recipe for target 'src/CMakeFiles/openroad.dir/all' failed
make[1]: *** [src/CMakeFiles/openroad.dir/all] Error 2
make[1]: Leaving directory '/home/tamim/OpenROAD/build'
Makefile:152: recipe for target 'all' failed
make: *** [all] Error 2
jjcherry56 commented 4 years ago

This may have been fixed for CUDD link failure for openroad #445.