agumon9 Posted September 16, 2016 Report Posted September 16, 2016 Hi all! I have a problem adding SCV library. I am new to SystemC! I am using 64bit Windows 7 and I have installed Cygwin x86_64. SystemC works with Eclipse but I am unable to add SCV library. When I try to execute $ ../configure --with-systemc=/cygwin/c/systemc-2.3.1 it writes out numerous lines and then I get errors checking for supported C++ compiler... configure: WARNING: gcc 5.4 is not a supported version (i.e. (3.2|3.4|4.1|4.2|4.3|4.4|4.5|4.6|4.7|4.8)). Beware. checking for supported operating system... configure: error: cygwin is not supported Is there any way to get around this problem? Quote
Stephan Gerth Posted September 19, 2016 Report Posted September 19, 2016 Yes, please have a look into the configure script and search for "checking for supported operating system". You'll need to add cygwin there. Please note, that cygwin is not officially supported although it may work. Quote
agumon9 Posted September 20, 2016 Author Report Posted September 20, 2016 Should I change configure.ac or configure file? I tried changing the configure.ac file and it made no difference. Changing configure file made this errors ../configure: line 14: $'\r': command not found ../configure: line 29: syntax error near unexpected token `newline' './configure: line 29: ` ;; even after changing everything back. Only copying old file instead of the changed one would make the error go away. Quote
Stephan Gerth Posted September 20, 2016 Report Posted September 20, 2016 This looks like your editor added Windows line endings while saving the file. Please try again with an editor which can distinguish between different line endings and choose the unix ones. Quote
agumon9 Posted September 20, 2016 Author Report Posted September 20, 2016 Thank you for your help! I managed to do it using Vim editor in Cygwin although I still cannot make it work because now it can't find all libraries for systemC in systemc-2.3.1 folder. Quote
Stephan Gerth Posted September 20, 2016 Report Posted September 20, 2016 Please post the relevant commandlines and output Quote
agumon9 Posted September 20, 2016 Author Report Posted September 20, 2016 my reply probably got lost. Anyway, I managed to rename folder containing libsystemc.a from lib-cygwin64 to lib-cygwin and it successfully finished configure. Make and make install have these errors ../../../src/scv/scv_init_seed.cpp: In function 'long long unsigned int _scv_default_global_init_seed(long unsigned int)': ../../../src/scv/scv_init_seed.cpp:76:19: error: aggregate '_scv_default_global_init_seed(long unsigned int)::timezone dummy1' has incomplete type and cannot be defined struct timezone dummy1; ^ ../../../src/scv/scv_init_seed.cpp:77:28: error: 'gettimeofday' was not declared in this scope gettimeofday(&tp, &dummy1); ^ make[2]: *** [Makefile:542: libscv_la-scv_init_seed.lo] Error 1 make[2]: Leaving directory '/cygdrive/c/scv-2.0.0/objdir/src/scv' make[1]: *** [Makefile:440: check-recursive] Error 1 make[1]: Leaving directory '/cygdrive/c/scv-2.0.0/objdir/src' make: *** [Makefile:484: check-recursive] Error 1 Will this work anyway? Quote
Stephan Gerth Posted September 20, 2016 Report Posted September 20, 2016 Probably not. Regarding gettimeofday please follow http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin and try again. Quote
agumon9 Posted September 20, 2016 Author Report Posted September 20, 2016 I am getting those errors in Cygwin when I execute $ make and $ make install. I tried to use it in eclipse but it wont include scv.h file. Eclipse says C:/systemc-2.3.1/include/scv.h:44:26: fatal error: scv/scv_util.h: No such file or directory Quote
Stephan Gerth Posted September 20, 2016 Report Posted September 20, 2016 I've lost a little bit track here: Can you check that you are in the correct folder? In doubt, can you please post the history of commands you executed? Quote
agumon9 Posted September 20, 2016 Author Report Posted September 20, 2016 Firstly, thanks for all the help. I have followed SystemC-2.3.1 INSTALL manual and done everything it said. Then I downloaded scv-2.0.0 and somehow called $ configure and it showed no errors. Then i called $ make and it showed a ton of text and in the end showed errors i copied two posts before. I called $ make install and it also wrote out a ton of text and printed the same two errors. I am a bit stuck here. I need to use SCV in Eclipse but i cannot include <scv.h>. Eclipse doesn't see the scv.h file. Quote
Stephan Gerth Posted September 20, 2016 Report Posted September 20, 2016 First "make" has to complete without error before running "make install". Could you please post the output of "make" after fixing gettimeofday? Quote
agumon9 Posted September 20, 2016 Author Report Posted September 20, 2016 I was finally able to call $ make without it getting any errors. There is an error in scv-2.0.0\src\scv\scv_init_seed.cpp: it should include sys\time.h instead of time.h because struct timezone that could not be found is defined in sys\time.h. Now $ make went trough without errors and $ make install and $ make check showed no errors. How can I connect this library to be used in Eclipse? Quote
agumon9 Posted September 20, 2016 Author Report Posted September 20, 2016 I did it! If anyone else needs it: there should be libscv.a and libscv.la in lib-cygwin folder in systemc folder after installation of scv library. So just go to the project you are working on in Eclipse -> Properties -> C/C++ Build -> Settings -> Cygwin C++ Linker and add scv to the libraries list! Thank you, Stephan, for all the help! Quote
raku99 Posted December 3, 2021 Report Posted December 3, 2021 Hi 🙂 Pretty old topic, but i've found that when trying to build SCV using GCC with MSYS2 on Windows machine i got error that gettimeofday is not defined: make[2]: Entering directory '/f/libs/repos/_1_downloaded_/scv-2.0.1/objdir-msys/src/scv' /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../../src/scv -I../../config -I../../src -I../../../src -I../../../src/cudd/2.3.0/cudd -I../../../src/cudd/2.3.0/obj -I../../../src/cudd/2.3.0/util -I../../../src/cudd/2.3.0/mtr -I../../../src/cudd/2.3.0/st -I/f/libs/systemc-2.3.3/include -Wall -Wformat -O2 -D__MSVCRT_VERSION__=0x601 -O0 -g -D__MSVCRT_VERSION__=0x601 -MT libscv_la-scv_init_seed.lo -MD -MP -MF .deps/libscv_la-scv_init_seed.Tpo -c -o libscv_la-scv_init_seed.lo `test -f 'scv_init_seed.cpp' || echo '../../../src/scv/'`scv_init_seed.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../../src/scv -I../../config -I../../src -I../../../src -I../../../src/cudd/2.3.0/cudd -I../../../src/cudd/2.3.0/obj -I../../../src/cudd/2.3.0/util -I../../../src/cudd/2.3.0/mtr -I../../../src/cudd/2.3.0/st -I/f/libs/systemc-2.3.3/include -Wall -Wformat -O2 -D__MSVCRT_VERSION__=0x601 -O0 -g -D__MSVCRT_VERSION__=0x601 -MT libscv_la-scv_init_seed.lo -MD -MP -MF .deps/libscv_la-scv_init_seed.Tpo -c ../../../src/scv/scv_init_seed.cpp -o libscv_la-scv_init_seed.o ../../../src/scv/scv_init_seed.cpp: In function 'long long unsigned int _scv_default_global_init_seed(long unsigned int)': ../../../src/scv/scv_init_seed.cpp:84:19: error: aggregate '_scv_default_global_init_seed(long unsigned int)::timezone dummy1' has incomplete type and cannot be defined 84 | struct timezone dummy1; | ^~~~~~ ../../../src/scv/scv_init_seed.cpp:85:3: error: 'gettimeofday' was not declared in this scope 85 | gettimeofday(&tp, &dummy1); | ^~~~~~~~~~~~ make[2]: *** [Makefile:542: libscv_la-scv_init_seed.lo] Error 1 make[2]: Leaving directory '/f/libs/repos/_1_downloaded_/scv-2.0.1/objdir-msys/src/scv' make[1]: *** [Makefile:440: all-recursive] Error 1 make[1]: Leaving directory '/f/libs/repos/_1_downloaded_/scv-2.0.1/objdir-msys/src' make: *** [Makefile:484: all-recursive] Error 1 I've followed StackOverflow link provided by Stephan - and then i've spent some time just to notice, that there is lack of #include file of sys/time.h (not sys/times.h, that is already present in scv_init_seed.cpp). For MSYS GCC some interesting initial #defines (i was curious how to make some fix not only for MSYS, but also for Cygwin, which i also use from time to time) - launching: g++ -dM -E - < /dev/null | grep -iE "cygwin|win|msys|win" gave result - for MSYS: #define __WINT_MAX__ 0xffffffffU #define __WINT_MIN__ 0U #define __MSYS__ 1 #define __SIZEOF_WINT_T__ 4 #define __CYGWIN__ 1 #define __WINT_TYPE__ unsigned int #define __WINT_WIDTH__ 32 and for CYGWIN: #define __WINT_MAX__ 0xffffffffU #define __WINT_MIN__ 0U #define __SIZEOF_WINT_T__ 4 #define __CYGWIN__ 1 #define __WINT_TYPE__ unsigned int #define __WINT_WIDTH__ 32 Suprisingly, MSYS also #defines __CYGWIN__ (as Cygwin does) together with __MSYS__. As a fix i've added at very beginning of scv_init_seed.cpp: #if (defined __CYGWIN__) || (defined __MSYS__) # include <sys/time.h> #endif Additional check for __MSYS__ seems to be a bit redundant, but left for clarity. As for now - SCV can be build with MSYS GCC 🙂 Regards ! Quote
maehne Posted January 5, 2022 Report Posted January 5, 2022 Thanks for the issue report and suggested fix @raku99. I reported it to the SystemC VWG for consideration. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.