OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

CMake Error CUDD_LIB NOTFOUND

Open fawqati-spherical opened this issue 1 year ago • 5 comments

Describe the bug

How do i fix the following please ?

When installing openroad from source, i get the error below when executing:

cmake ..

CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: CUDD_LIB linked by target "OpenSTA" in directory /tools/downloads/OpenROAD/src/sta

-- Generating done (0.2s) CMake Generate step failed. Build files cannot be regenerated correctly.

Ps. I managed to run the install dependancies script fine.

Expected Behavior

install without errors

Environment

[WARNING] Your current OpenROAD version is outdated.
It is recommened to pull the latest changes.
If problem persists, file a github issue with the re-producible test case.
kernel: Linux 4.18.0-477.27.1.el8_8.x86_64
os: Rocky Linux 8.10 (Green Obsidian)
cmake version 3.26.5
-- The CXX compiler identification is GNU 8.5.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenROAD version: v2.0-13269-g2c2f9599a
-- System name: Linux
-- Compiler: GNU 8.5.0
-- Build type: RELEASE
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- The C compiler identification is GNU 8.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Python: /bin/python3.11 (found version "3.11.9") found components: Interpreter 
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Performing Test C_COMPILER_SUPPORTS__-Wall
-- Performing Test C_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive - Success
-- Performing Test C_COMPILER_SUPPORTS__-x
-- Performing Test C_COMPILER_SUPPORTS__-x - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-x
-- Performing Test CXX_COMPILER_SUPPORTS__-x - Failed
-- Performing Test C_COMPILER_SUPPORTS__c++
-- Performing Test C_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__c++
-- Performing Test CXX_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17 - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17 - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- TCL library: /usr/lib64/libtcl.so
-- TCL header: /usr/include/tcl.h
-- TCL readline library: /usr/lib64/libtclreadline.so
-- TCL readline header: /usr/include
-- Found SWIG: /usr/local/bin/swig (found suitable version "4.1.0", minimum required is "4.0")  
-- Using SWIG >= 4.1.0 -flatstaticmethod flag for python
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")  
-- boost: 1.80.0
-- Found Python3: /usr/include/python3.11 (found version "3.11.9") found components: Development Development.Module Development.Embed 
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")  
-- spdlog: 1.8.1
-- Found BISON: /bin/bison (found version "3.0.4") 
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- STA version: 2.6.0
-- STA git sha: aafee90f8a21bf7867cef2e159929440cf45b2e5
-- System name: Linux
-- Compiler: GNU 8.5.0
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3 -DNDEBUG
-- Install prefix: /usr/local
-- Found FLEX: /bin/flex (found version "2.6.1") 
-- TCL library: /usr/lib64/libtcl.so
-- TCL header: /usr/include/tcl.h
-- TCL readline library: /usr/lib64/libtclreadline.so
-- TCL readline header: /usr/include/tclreadline.h
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- CUDD library: not found
-- SSTA: 0
-- Found SWIG: /usr/local/bin/swig (found suitable version "4.1.0", minimum required is "3.0")  
-- STA executable: /tools/downloads/OpenROAD/src/sta/app/sta
-- Found re2: /opt/or-tools/lib64/cmake/re2/re2Config.cmake (found version "9.0.0") 
-- Found Clp: /opt/or-tools/lib64/cmake/Clp/ClpConfig.cmake (found version "1.17.7") 
-- Found Cbc: /opt/or-tools/lib64/cmake/Cbc/CbcConfig.cmake (found version "2.10.7") 
-- Found SCIP: /opt/or-tools/lib/cmake/scip/scip-config.cmake (found version "8.0.1") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- GPU is not enabled
-- TCL library: /usr/lib64/libtcl.so
-- TCL header: /usr/include/tcl.h
-- GUI is enabled
-- Charts widget is not enabled
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization 
-- Could NOT find VTune (missing: VTune_LIBRARIES VTune_INCLUDE_DIRS) 
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found suNumber of processor cores: 32
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDD_LIB
    linked by target "OpenSTA" in directory /tools/downloads/OpenROAD/src/sta

CMake Generate step failed.  Build files cannot be regenerated correctly.
itable version "1.80.0", minimum required is "1.78")  
-- TCL library: /usr/lib64/libtcl.so
-- TCL header: /usr/include/tcl.h
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization system thread 
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")  
-- Found Eigen3: /usr/local/share/eigen3/cmake/Eigen3Config.cmake (found version "3.4.1") 
-- TCL readline enabled
-- Tcl Extended disabled
-- Python3 enabled
-- Configuring done (2.8s)
-- Generating done (0.2s)

To Reproduce

git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git cd OpenROAD git checkout 2c2f9599amkdir build && cd build cmake ..

Relevant log output

No response

Screenshots

No response

Additional Context

No response

fawqati-spherical avatar Aug 25 '24 05:08 fawqati-spherical

You need to run the dependency installer.

maliberty avatar Aug 25 '24 05:08 maliberty

Good morning Matt,

As mention in my post, i managed to run the dependency installer with a few tweaks to get it running on Rocky 8.11

Can you please point me specifically to which dependancy is required ?

fawqati-spherical avatar Aug 25 '24 05:08 fawqati-spherical

CUDD

maliberty avatar Aug 25 '24 15:08 maliberty

CUDD

Hi matt,

I just realised why i couldn't find the CUDD section in the dependancy installer. The reason is when i clone the repo, i check out a previous version of OR (due to the compatibility issues we were facing with python + openlane + yosys), and the dependancy installer has obviously been updated since that commit with the CUDD requirement, and therefore obviously not installing.

This leads to the bigger question, regarding tagging and stable releases of OpenRoad. Is that on your roadmap ? Anything i can help with /contribute to ?

FYI, By reverting to a previous commit of OpenRoad but not the submodules of 'module/OpenSTA' and 'src/abc' i ended up compiling without the required dependancies. Now i assume i have to find the submodule commits that relate to the OpenRoad commit which didnt need these updated dependancies. Your invaluable feedback / input would be greatly appreciated !

Best, Faisal

Ps. FYI, I managed to run through the latest dependancy installer but when i try to make-compile the previous version of OpenRoad, i get the following error

/tools/downloads/OpenROAD/src/gui/src/clockWidget.cpp: In member function ?gui::ClockNodeGraphicsViewItem* gui::ClockTreeView::addLeafToScene(qreal, const gui::ClockTreeView::PinArrival&, sta::dbNetwork*)?: /tools/downloads/OpenROAD/src/gui/src/clockWidget.cpp:1170:70: warning: ?sta::RiseFallMinMax sta::LibertyPort::clockTreePathDelays() const? is deprecated [-Wdeprecated-declarations] sta::RiseFallMinMax insDelays = libPort->clockTreePathDelays(); ^ In file included from /tools/downloads/OpenROAD/src/gui/src/clockWidget.cpp:61: /tools/downloads/OpenROAD/src/sta/include/sta/Liberty.hh:832:18: note: declared here RiseFallMinMax clockTreePathDelays() const attribute ((deprecated)); ^~~~~~~~~~~~~~~~~~~ [ 71%] Building CXX object src/gui/CMakeFiles/gui.dir/src/gui_utils.cpp.o [ 71%] Building CXX object src/gui/CMakeFiles/gui.dir/src/colorGenerator.cpp.o [ 71%] Building CXX object src/gui/CMakeFiles/gui.dir/src/bufferTreeDescriptor.cpp.o [ 71%] Building CXX object src/gui/CMakeFiles/gui.dir/src/chartsWidget.cpp.o [ 71%] Building CXX object src/gui/CMakeFiles/gui.dir/gui_autogen/3YJK5W5UP7/qrc_resource.cpp.o [ 71%] Linking CXX static library gui.a [ 71%] Built target gui make[2]: *** No rule to make target '/tools/downloads/OpenROAD/src/sta/tcl/Graph.tcl', needed by 'src/dbSta/src/dbSta-tclInitVar.cc'. Stop. make[1]: *** [CMakeFiles/Makefile2:3808: src/dbSta/src/CMakeFiles/dbSta.dir/all] Error 2 make: *** [Makefile:146: all] Error 2

fawqati-spherical avatar Aug 28 '24 09:08 fawqati-spherical

git submodule update --recursive should get the right commit.

There is no plan for formal releases as we don't have the bandwidth to patch older releases. We only provide support at head. Of course you are free to use any commit you wish.

maliberty avatar Aug 28 '24 13:08 maliberty

Thanks Matt. That really helped point me in the right direction !

For anyones reference:

My mistake was recursively cloning the repo, then checking out the commit version.

> git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git
> git checkout 2c2f9599a

The correct method is:

git clone https://github.com/The-OpenROAD-Project/OpenROAD.git git checkout 2c2f9599a git submodule update --init --recursive

fawqati-spherical avatar Sep 06 '24 11:09 fawqati-spherical

I'm getting the same cmake error on the latest commit. I've followed all steps from https://openroad-flow-scripts.readthedocs.io/en/latest/user/BuildLocally.html

This is the exact sequence of steps..

git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git
cd OpenROAD
sudo ./etc/DependencyInstaller.sh -base
./etc/DependencyInstaller.sh -common -local
./etc/Build.sh

I see this in the cmake log

-- TCL readline enabled
-- Tcl Extended disabled
-- Python3 enabled
-- Configuring done (2.9s)
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDD_LIB
    linked by target "OpenSTA" in directory /zfsspare/opt/OpenROAD/src/sta

-- Generating done (0.9s)

nachiket avatar Mar 07 '25 16:03 nachiket

Ok so I think a broken apt package path in sources.list.d was messing the build script. I fixed that and with the -all option it worked. I still can't get -local to work correctly. I think the docs page should say cd build; sudo make install to be clear about the exact set of steps. But overall it's quite well-documented. Looking forward to using it.

nachiket avatar Mar 07 '25 18:03 nachiket