lana555 / dynamatic

MIT License
86 stars 38 forks source link

Issue when making Buffers and dot2vhdl #4

Open BowenKwan opened 3 years ago

BowenKwan commented 3 years ago

I was trying to make the buffer and dot2vhdl, however, I have faced some weird error.

For buffer, I got conflicts between string.h and graphviz/cdt.h

/usr/include/string.h:65:12: error: conflicting declaration of ‘int memcmp(const void*, const void*, size_t)’ with ‘C’ linkage
 extern int memcmp (const void *__s1, const void *__s2, size_t __n)
            ^~~~~~
In file included from /usr/include/graphviz/cgraph.h:17,
                 from src/DFnetlist_read_dot.cpp:4:
/usr/include/graphviz/cdt.h:242:13: note: previous declaration with ‘C++’ linkage
 extern int  memcmp _ARG_((const Void_t*, const Void_t*, size_t));
             ^~~~~~

For now I manually commented out the relevant line in graphviz/cdt.h . Is is ok to do so? After the make, I have a file name "buffers" in the bin folder, is this what I susposed to get?

For dot2vhdl, I got the following erro message

g++ -O3 -g -Wall -static -fpermissive     src/table_printer.o src/dot_parser.o src/vhdl_writer.o src/lsq_generator.o src/checks.o src/eda_if.o src/reports.o src/string_utils.o src/sys_utils.o src/dot2vhdl.o -o bin/dot2vhdl  
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: cannot find -lm
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: cannot find -lc
collect2: error: ld returned 1 exit status
make: *** [Makefile:62: bin/dot2vhdl] Error 1

I do not see -lc in the Makefile, and the 2 -lm are both commented out. Do you have any idea why -lm and -lc are needed and how I can get those during the make?

I am now running dynamatic on Centos 7. Latest version of Graphviz available is 2.30.1. The gcc is of version 8.3.1, from using devtoolset-8.

Thank you very much for your help!

Andrea-Guerrieri commented 3 years ago

Hi,

Sorry for the long lag about this. There is any chance that you can use Ubuntu 18.4, or the VM available on dynamatic.epfl.ch?

Andrea

Prithvi-Velicheti commented 2 years ago

Removing "static" in CFLAGS of makefile helped me in building "dot2vhdl" in RHEL8 and the above problem can be solved by it.