Harald Pretl
10/18/2022, 4:25 PMHarald Pretl
10/18/2022, 4:27 PMHarald Pretl
10/18/2022, 4:28 PMMitch Bailey
10/18/2022, 5:39 PMcvc
that’s also installed sometimes. I’ve changed the name to cvc_rv
in the most recent version. There’s also this repo https://github.com/d-m-bailey/extra_be_checks.git that uses cvc
(my version) along with a setup for running device level lvs. mpw-7
is the most recent branch. It may be a while before we get everything incorporated into openlane.Harald Pretl
10/19/2022, 6:39 AMMitch Bailey
10/19/2022, 7:24 AMHarald Pretl
10/19/2022, 8:04 AMbash-5.1# make
make all-recursive
make[1]: Entering directory '/foss/designs/cvc'
Making all in src
make[2]: Entering directory '/foss/designs/cvc/src'
/bin/sh ../ylwrap cdlParser.yy y.tab.c <http://cdlParser.cc|cdlParser.cc> y.tab.h `echo <http://cdlParser.cc|cdlParser.cc> | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output cdlParser.output -- bison -y -d
/foss/designs/cvc/src/cdlParser.yy:24.1-9: warning: POSIX Yacc does not support %skeleton [-Wyacc]
24 | %skeleton "<http://lalr1.cc|lalr1.cc>"
| ^~~~~~~~~
/foss/designs/cvc/src/cdlParser.yy:24.11-20: warning: POSIX Yacc does not support string literals [-Wyacc]
24 | %skeleton "<http://lalr1.cc|lalr1.cc>"
| ^~~~~~~~~~
/foss/designs/cvc/src/cdlParser.yy:25.1-8: warning: POSIX Yacc does not support %require [-Wyacc]
25 | %require "3.0"
| ^~~~~~~~
/foss/designs/cvc/src/cdlParser.yy:25.10-14: warning: POSIX Yacc does not support string literals [-Wyacc]
25 | %require "3.0"
| ^~~~~
/foss/designs/cvc/src/cdlParser.yy:27.1-7: warning: POSIX Yacc does not support %define [-Wyacc]
27 | %define parser_class_name {CCdlParser}
| ^~~~~~~
/foss/designs/cvc/src/cdlParser.yy:27.1-38: warning: deprecated directive: '%define parser_class_name {CCdlParser}', use '%define api.parser.class {CCdlParser}' [-Wdeprecated]
27 | %define parser_class_name {CCdlParser}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| %define api.parser.class {CCdlParser}
/foss/designs/cvc/src/cdlParser.yy:29.1-7: warning: POSIX Yacc does not support %define [-Wyacc]
29 | %define parse.assert
| ^~~~~~~
/foss/designs/cvc/src/cdlParser.yy:31.1-5: warning: POSIX Yacc does not support %code [-Wyacc]
31 | %code requires {
| ^~~~~
/foss/designs/cvc/src/cdlParser.yy:46.1-15: warning: POSIX Yacc does not support %initial-action [-Wyacc]
46 | %initial-action
| ^~~~~~~~~~~~~~~
/foss/designs/cvc/src/cdlParser.yy:52.1-7: warning: POSIX Yacc does not support %define [-Wyacc]
52 | %define parse.trace
| ^~~~~~~
/foss/designs/cvc/src/cdlParser.yy:53.1-7: warning: POSIX Yacc does not support %define [-Wyacc]
53 | %define parse.error verbose
| ^~~~~~~
/foss/designs/cvc/src/cdlParser.yy:55.1-5: warning: POSIX Yacc does not support %code [-Wyacc]
55 | %code
| ^~~~~
/foss/designs/cvc/src/cdlParser.yy:63.18-30: warning: POSIX Yacc does not support string literals [-Wyacc]
63 | %token CDL_EOF 0 "END-OF-FILE"
| ^~~~~~~~~~~~~
/foss/designs/cvc/src/cdlParser.yy:64.15-22: warning: POSIX Yacc does not support string literals [-Wyacc]
64 | %token SUBCKT "SUBCKT"
| ^~~~~~~~
/foss/designs/cvc/src/cdlParser.yy:65.13-18: warning: POSIX Yacc does not support string literals [-Wyacc]
65 | %token ENDS "ENDS"
| ^~~~~~
/foss/designs/cvc/src/cdlParser.yy:74.12-16: warning: POSIX Yacc does not support string literals [-Wyacc]
74 | %token EOL "EOL"
| ^~~~~
/foss/designs/cvc/src/cdlParser.yy:110.9-14: warning: POSIX Yacc does not support %empty [-Wyacc]
110 | %empty {
| ^~~~~~
/foss/designs/cvc/src/cdlParser.yy: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
updating location.hh
updating position.hh
updating stack.hh
updating cdlParser.hh
make all-am
make[3]: Entering directory '/foss/designs/cvc/src'
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT cvc.o -MD -MP -MF .deps/cvc.Tpo -c -o cvc.o <http://cvc.cc|cvc.cc>
mv -f .deps/cvc.Tpo .deps/cvc.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT cdlParser.o -MD -MP -MF .deps/cdlParser.Tpo -c -o cdlParser.o <http://cdlParser.cc|cdlParser.cc>
mv -f .deps/cdlParser.Tpo .deps/cdlParser.Po
/bin/sh ../ylwrap cdlScanner.ll lex.yy.c <http://cdlScanner.cc|cdlScanner.cc> -- flex
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT cdlScanner.o -MD -MP -MF .deps/cdlScanner.Tpo -c -o cdlScanner.o <http://cdlScanner.cc|cdlScanner.cc>
mv -f .deps/cdlScanner.Tpo .deps/cdlScanner.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCdlParserDriver.o -MD -MP -MF .deps/CCdlParserDriver.Tpo -c -o CCdlParserDriver.o <http://CCdlParserDriver.cc|CCdlParserDriver.cc>
mv -f .deps/CCdlParserDriver.Tpo .deps/CCdlParserDriver.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCircuit.o -MD -MP -MF .deps/CCircuit.Tpo -c -o CCircuit.o <http://CCircuit.cc|CCircuit.cc>
mv -f .deps/CCircuit.Tpo .deps/CCircuit.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCondition.o -MD -MP -MF .deps/CCondition.Tpo -c -o CCondition.o <http://CCondition.cc|CCondition.cc>
mv -f .deps/CCondition.Tpo .deps/CCondition.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CConnection.o -MD -MP -MF .deps/CConnection.Tpo -c -o CConnection.o <http://CConnection.cc|CConnection.cc>
mv -f .deps/CConnection.Tpo .deps/CConnection.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CConnectionCount.o -MD -MP -MF .deps/CConnectionCount.Tpo -c -o CConnectionCount.o <http://CConnectionCount.cc|CConnectionCount.cc>
mv -f .deps/CConnectionCount.Tpo .deps/CConnectionCount.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCvcDb.o -MD -MP -MF .deps/CCvcDb.Tpo -c -o CCvcDb.o <http://CCvcDb.cc|CCvcDb.cc>
mv -f .deps/CCvcDb.Tpo .deps/CCvcDb.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCvcDb_error.o -MD -MP -MF .deps/CCvcDb_error.Tpo -c -o CCvcDb_error.o <http://CCvcDb_error.cc|CCvcDb_error.cc>
mv -f .deps/CCvcDb_error.Tpo .deps/CCvcDb_error.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCvcDb_init.o -MD -MP -MF .deps/CCvcDb_init.Tpo -c -o CCvcDb_init.o <http://CCvcDb_init.cc|CCvcDb_init.cc>
mv -f .deps/CCvcDb_init.Tpo .deps/CCvcDb_init.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCvcDb_interactive.o -MD -MP -MF .deps/CCvcDb_interactive.Tpo -c -o CCvcDb_interactive.o <http://CCvcDb_interactive.cc|CCvcDb_interactive.cc>
mv -f .deps/CCvcDb_interactive.Tpo .deps/CCvcDb_interactive.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCvcDb_main.o -MD -MP -MF .deps/CCvcDb_main.Tpo -c -o CCvcDb_main.o <http://CCvcDb_main.cc|CCvcDb_main.cc>
mv -f .deps/CCvcDb_main.Tpo .deps/CCvcDb_main.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCvcDb_print.o -MD -MP -MF .deps/CCvcDb_print.Tpo -c -o CCvcDb_print.o <http://CCvcDb_print.cc|CCvcDb_print.cc>
mv -f .deps/CCvcDb_print.Tpo .deps/CCvcDb_print.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCvcDb_utility.o -MD -MP -MF .deps/CCvcDb_utility.Tpo -c -o CCvcDb_utility.o <http://CCvcDb_utility.cc|CCvcDb_utility.cc>
mv -f .deps/CCvcDb_utility.Tpo .deps/CCvcDb_utility.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CCvcParameters.o -MD -MP -MF .deps/CCvcParameters.Tpo -c -o CCvcParameters.o <http://CCvcParameters.cc|CCvcParameters.cc>
mv -f .deps/CCvcParameters.Tpo .deps/CCvcParameters.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CDevice.o -MD -MP -MF .deps/CDevice.Tpo -c -o CDevice.o <http://CDevice.cc|CDevice.cc>
mv -f .deps/CDevice.Tpo .deps/CDevice.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CEventQueue.o -MD -MP -MF .deps/CEventQueue.Tpo -c -o CEventQueue.o <http://CEventQueue.cc|CEventQueue.cc>
mv -f .deps/CEventQueue.Tpo .deps/CEventQueue.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CFixedText.o -MD -MP -MF .deps/CFixedText.Tpo -c -o CFixedText.o <http://CFixedText.cc|CFixedText.cc>
mv -f .deps/CFixedText.Tpo .deps/CFixedText.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CInstance.o -MD -MP -MF .deps/CInstance.Tpo -c -o CInstance.o <http://CInstance.cc|CInstance.cc>
mv -f .deps/CInstance.Tpo .deps/CInstance.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CModel.o -MD -MP -MF .deps/CModel.Tpo -c -o CModel.o <http://CModel.cc|CModel.cc>
mv -f .deps/CModel.Tpo .deps/CModel.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CNormalValue.o -MD -MP -MF .deps/CNormalValue.Tpo -c -o CNormalValue.o <http://CNormalValue.cc|CNormalValue.cc>
mv -f .deps/CNormalValue.Tpo .deps/CNormalValue.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CParameterMap.o -MD -MP -MF .deps/CParameterMap.Tpo -c -o CParameterMap.o <http://CParameterMap.cc|CParameterMap.cc>
mv -f .deps/CParameterMap.Tpo .deps/CParameterMap.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CPower.o -MD -MP -MF .deps/CPower.Tpo -c -o CPower.o <http://CPower.cc|CPower.cc>
mv -f .deps/CPower.Tpo .deps/CPower.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CSet.o -MD -MP -MF .deps/CSet.Tpo -c -o CSet.o <http://CSet.cc|CSet.cc>
mv -f .deps/CSet.Tpo .deps/CSet.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CvcMaps.o -MD -MP -MF .deps/CvcMaps.Tpo -c -o CvcMaps.o <http://CvcMaps.cc|CvcMaps.cc>
mv -f .deps/CvcMaps.Tpo .deps/CvcMaps.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT CVirtualNet.o -MD -MP -MF .deps/CVirtualNet.Tpo -c -o CVirtualNet.o <http://CVirtualNet.cc|CVirtualNet.cc>
mv -f .deps/CVirtualNet.Tpo .deps/CVirtualNet.Po
gcc -DHAVE_CONFIG_H -I. -I.. -O3 -MT exitfail.o -MD -MP -MF .deps/exitfail.Tpo -c -o exitfail.o exitfail.c
mv -f .deps/exitfail.Tpo .deps/exitfail.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT gzstream.o -MD -MP -MF .deps/gzstream.Tpo -c -o gzstream.o gzstream.C
mv -f .deps/gzstream.Tpo .deps/gzstream.Po
gcc -DHAVE_CONFIG_H -I. -I.. -O3 -MT obstack.o -MD -MP -MF .deps/obstack.Tpo -c -o obstack.o obstack.c
mv -f .deps/obstack.Tpo .deps/obstack.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT resource.o -MD -MP -MF .deps/resource.Tpo -c -o resource.o <http://resource.cc|resource.cc>
mv -f .deps/resource.Tpo .deps/resource.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT utility.o -MD -MP -MF .deps/utility.Tpo -c -o utility.o <http://utility.cc|utility.cc>
mv -f .deps/utility.Tpo .deps/utility.Po
g++ -DHAVE_CONFIG_H -I. -I.. -O3 -std=gnu++11 -MT mmap_file_pool.o -MD -MP -MF .deps/mmap_file_pool.Tpo -c -o mmap_file_pool.o mmap_file_pool.cpp
mv -f .deps/mmap_file_pool.Tpo .deps/mmap_file_pool.Po
g++ -O3 -std=gnu++11 -static-libstdc++ -static-libgcc -o cvc cvc.o cdlParser.o cdlScanner.o CCdlParserDriver.o CCircuit.o CCondition.o CConnection.o CConnectionCount.o CCvcDb.o CCvcDb_error.o CCvcDb_init.o CCvcDb_interactive.o CCvcDb_main.o CCvcDb_print.o CCvcDb_utility.o CCvcParameters.o CDevice.o CEventQueue.o CFixedText.o CInstance.o CModel.o CNormalValue.o CParameterMap.o CPower.o CSet.o CvcMaps.o CVirtualNet.o exitfail.o gzstream.o obstack.o resource.o utility.o mmap_file_pool.o -lz -lreadline -lcurses -lhistory
/usr/bin/ld: CCvcDb_error.o: in function `CCvcDb::FindAllOverVoltageErrors()':
<http://CCvcDb_error.cc:(.text+0x50fc)|CCvcDb_error.cc:(.text+0x50fc)>: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
make[3]: Leaving directory '/foss/designs/cvc/src'
make[2]: Leaving directory '/foss/designs/cvc/src'
Making all in scripts
make[2]: Entering directory '/foss/designs/cvc/scripts'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/foss/designs/cvc/scripts'
Making all in src_py
make[2]: Entering directory '/foss/designs/cvc/src_py'
pyinstaller -F check_cvc.spec --clean
119 INFO: PyInstaller: 5.5
119 INFO: Python: 3.9.10
121 INFO: Platform: Linux-5.10.124-linuxkit-aarch64-with-glibc2.34
option(s) not allowed:
--onedir/--onefile
makespec options not valid when a .spec file is given
make[2]: *** [Makefile:451: check_cvc] Error 1
make[2]: Leaving directory '/foss/designs/cvc/src_py'
make[1]: *** [Makefile:401: all-recursive] Error 1
make[1]: Leaving directory '/foss/designs/cvc'
make: *** [Makefile:342: all] Error 2
Mitch Bailey
10/19/2022, 8:18 AMbison 3.3
Harald Pretl
10/19/2022, 8:26 AMbison (GNU Bison) 3.7.4
Harald Pretl
10/19/2022, 8:27 AMd172016a791af3089b28070d80ad92bdfef9c585
which is quite old…Mitch Bailey
10/19/2022, 8:30 AMMitch Bailey
10/19/2022, 8:32 AM$OPENLANE_ROOT/dependencies/tool_metadata.yml
?Harald Pretl
10/19/2022, 8:37 AMd172016a791af3089b28070d80ad92bdfef9c585
, and the OpenLane folks removed the switch where you can bypass the version checks easily (now it is a parameter to flow.tcl
, which is inconvenient in our case).Harald Pretl
10/19/2022, 8:38 AMCan you change the CVC commit inI guess we can. Would that be your preferred solution? Problem is, on each build we have to 1. Manually switch the CVC version (we now pull it automatically from the OL dependecies) 2. Patch the?$OPENLANE_ROOT/dependencies/tool_metadata.yml
$OPENLANE_ROOT/dependencies/tool_metadata.yml
For now a simple patch to CVC to compile would be easier for us until OL migrates to a newer CVC, which would be the solution to go in my view. Can you push OL to upgrade?Mitch Bailey
10/19/2022, 10:51 AMHarald Pretl
10/19/2022, 11:06 AMdiff --git a/src_py/Makefile.am b/src_py/Makefile.am
index ef930fc..14b6260 100644
--- a/src_py/Makefile.am
+++ b/src_py/Makefile.am
@@ -9,11 +9,13 @@ checkcvc_sources = ResultFile.py \
summaryGUI.py \
utility.py
-all : check_cvc
+all : ;
+
+install : ;
check_cvc : $(checkcvc_sources) check_cvc.spec
pyinstaller -F check_cvc.spec --clean
cp dist/check_cvc .
-install : check_cvc
+install_check_cvc : check_cvc
cp check_cvc ${exec_prefix}/bin
Mitch Bailey
10/19/2022, 1:26 PM