scale-lab / OpenPhySyn

EDA physical synthesis optimization kit
https://woset-workshop.github.io/PDFs/2020/a09.pdf
BSD 3-Clause "New" or "Revised" License
49 stars 10 forks source link

Depdency check failed #8

Closed msingh9 closed 1 year ago

msingh9 commented 1 year ago

My cmake .. step is failing during installation. I have SWIG 4.0.2 installed but it seems like looking for 3.0.

I also have openroad installed which uses SWIG 4.0.2. For this reason I don't want to downgrade SWIG to 3.0. Is there a way to bypass this issue?

-- Found BISON: /usr/bin/bison (found version "3.8.2") CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find SWIG (missing: 3.0) (found version "4.0.2") Call Stack (most recent call first): /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake-3.22/Modules/FindSWIG.cmake:153 (find_package_handle_standard_args) external/OpenDB/CMakeLists.txt:42 (find_package)

ahmed-agiza commented 1 year ago

Hi @msingh9, The error is coming from OpenDB (one of the dependencies); I will try to resolve it formally in the future. But for now, a quick -hacky- workaround is to go to external/OpenDB/CMakeLists.txt at line 42, change find_package(SWIG REQUIRED 3.0) to find_package(SWIG REQUIRED)

msingh9 commented 1 year ago

Thanks. I had to make similar change to external/OpenSTA/CMakeLists.txt. Build is running now..

I have another unrelated question. Openroad also has this command "repair_timing", is it their own's or it is same as OpenPhySyn?

msingh9 commented 1 year ago

Hmm, just when you hit send, you encounter the issue. Now I hit

/tmp/OpenPhySyn/external/OpenDB/src/zutil/poly_decomp.cpp:355:19: error: ‘numeric_limits’ is not a member of ‘std’ 355 | int yMin = std::numeric_limits::max(); | ^~~~~~ /tmp/OpenPhySyn/external/OpenDB/src/zutil/poly_decomp.cpp:355:34: error: expected primary-expression before ‘int’ 355 | int yMin = std::numeric_limits::max(); | ^~~ /tmp/OpenPhySyn/external/OpenDB/src/zutil/poly_decomp.cpp:356:19: error: ‘numeric_limits’ is not a member of ‘std’ 356 | int xMin = std::numeric_limits::max(); | ^~~~~~ /tmp/OpenPhySyn/external/OpenDB/src/zutil/poly_decomp.cpp:356:34: error: expected primary-expression before ‘int’ 356 | int xMin = std::numeric_limits::max(); | ^~~ make[2]: [external/OpenDB/src/zutil/CMakeFiles/zutil.dir/build.make:163: external/OpenDB/src/zutil/CMakeFiles/zutil.dir/poly_decomp.cpp.o] Error 1 make[2]: Leaving directory '/tmp/OpenPhySyn/build' make[1]: [CMakeFiles/Makefile2:1753: external/OpenDB/src/zutil/CMakeFiles/zutil.dir/all] Error 2 make[1]: Leaving directory '/tmp/OpenPhySyn/build' make: *** [Makefile:149: all] Error 2

ahmed-agiza commented 1 year ago

Thanks. I had to make similar change to external/OpenSTA/CMakeLists.txt. Build is running now..

I have another unrelated question. Openroad also has this command "repair_timing", is it their own's or it is same as OpenPhySyn?

It should be different, I think repair_timing is a common command name in EDA tools in general.

Hmm, just when you hit send, you encounter the issue. Now I hit

/tmp/OpenPhySyn/external/OpenDB/src/zutil/poly_decomp.cpp:355:19: error: ‘numeric_limits’ is not a member of ‘std’ 355 | int yMin = std::numeric_limits::max(); | ^~~~ /tmp/OpenPhySyn/external/OpenDB/src/zutil/poly_decomp.cpp:355:34: error: expected primary-expression before ‘int’ 355 | int yMin = std::numeric_limits::max(); | ^ /tmp/OpenPhySyn/external/OpenDB/src/zutil/poly_decomp.cpp:356:19: error: ‘numeric_limits’ is not a member of ‘std’ 356 | int xMin = std::numeric_limits::max(); | ^~~~ /tmp/OpenPhySyn/external/OpenDB/src/zutil/poly_decomp.cpp:356:34: error: expected primary-expression before ‘int’ 356 | int xMin = std::numeric_limits::max(); | ^ make[2]: [external/OpenDB/src/zutil/CMakeFiles/zutil.dir/build.make:163: external/OpenDB/src/zutil/CMakeFiles/zutil.dir/poly_decomp.cpp.o] Error 1 make[2]: Leaving directory '/tmp/OpenPhySyn/build' make[1]: [CMakeFiles/Makefile2:1753: external/OpenDB/src/zutil/CMakeFiles/zutil.dir/all] Error 2 make[1]: Leaving directory '/tmp/OpenPhySyn/build' make: *** [Makefile:149: all] Error 2

Seems related to compiler versions, for now, edit the file external/OpenDB/src/zutil/poly_decomp.cpp and add the header #include <limits>

msingh9 commented 1 year ago

It worked. Thanks. Will try it out and make good use of it. Thanks for developing opensource SW.