Dear Gabe, Thanks for your help. It does compile with USE_SYSTEMC=False, but unfortunately I suspect I do need that part in order to use gem5 as planned.
Indeed, the case scenario is to interface it to a slave memory controller. After many tries of different configurations, I keep getting as error: > panic: System port on system is not connected. In order to not get out of scope of this ML I guess it's better not to go into details about my implementation, but rather to say that also the example provided with gem5 (/gem5/util/tlm/build/examples/slave_port/gem5.sc) fails. I've followed the README explanation, first generating the config, and then loading it: user@pc-10744:~/gem5/util/tlm$ build/examples/slave_port/gem5.sc > m5out/config.ini -e 1000000 -v > SystemC 2.3.1-Accellera --- Nov 20 2020 13:20:43 > Copyright (c) 1996-2014 by all Contributors, > ALL RIGHTS RESERVED > Global frequency set at 1000000000000 ticks per second > ============================================================ > EventQueue Dump (cycle 0) > ------------------------------------------------------------ > <No Events> > ============================================================ > panic: System port on system is not connected. > Memory Usage: 175632 KBytes > Program aborted at tick 0 > --- BEGIN LIBC BACKTRACE --- > > /home/user/gem5/build/X86/libgem5_opt.so(_Z15print_backtracev+0x30)[0x7fcd6722d390] > > /home/user/gem5/build/X86/libgem5_opt.so(_Z12abortHandleri+0x56)[0x7fcd6723e216] > /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7fcd659c3210] > /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fcd659c318b] > /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7fcd659a2859] > build/examples/slave_port/gem5.sc(+0x2c9a0)[0x56522a0e39a0] > > /home/user/gem5/build/X86/libgem5_opt.so(_ZN6System4initEv+0xab)[0x7fcd6725ef2b] > > /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager13forEachObjectEM9SimObjectFvvE+0x5f)[0x7fcd6722daaf] > > /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager11instantiateEb+0xa2)[0x7fcd67233fa2] > build/examples/slave_port/gem5.sc(+0x2ba9b)[0x56522a0e2a9b] > build/examples/slave_port/gem5.sc(sc_main+0xfa)[0x56522a0cd8f3] > build/systemc/libsystemc.so(sc_elab_and_sim+0xe2)[0x7fcd679fcda0] > build/systemc/libsystemc.so(main+0x24)[0x7fcd679fcc4e] > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7fcd659a40b3] > build/examples/slave_port/gem5.sc(+0x1673e)[0x56522a0cd73e] > --- END LIBC BACKTRACE --- > Aborted (core dumped) The same happens if I try with a master configuration: user@pc-10744:~/gem5/util/tlm$ ../../build/X86/gem5.opt conf/tlm_master.py > warn: CheckedInt already exists in allParams. This may be caused by the > Python 2.7 compatibility layer. > warn: Enum already exists in allParams. This may be caused by the Python > 2.7 compatibility layer. > warn: ScopedEnum already exists in allParams. This may be caused by the > Python 2.7 compatibility layer. > gem5 Simulator System. http://gem5.org > gem5 is copyrighted software; use the --copyright option for details. > gem5 version 20.0.0.3 > gem5 compiled Nov 20 2020 00:52:43 > gem5 started Nov 20 2020 13:30:19 > gem5 executing on pc-10744, pid 20674 > command line: ../../build/X86/gem5.opt conf/tlm_master.py > Global frequency set at 1000000000000 ticks per second > warn: No dot file generated. Please install pydot to generate the dot file > and pdf. > fatal: Can't find port handler type 'tlm_master' > Memory Usage: 612264 KBytes user@pc-10744:~/gem5/util/tlm$ build/examples/master_port/gem5.sc > m5out/config.ini -e 1000000 -v > SystemC 2.3.1-Accellera --- Nov 20 2020 13:20:43 > Copyright (c) 1996-2014 by all Contributors, > ALL RIGHTS RESERVED > Global frequency set at 1000000000000 ticks per second > ============================================================ > EventQueue Dump (cycle 0) > ------------------------------------------------------------ > <No Events> > ============================================================ > panic: System port on system is not connected. > Memory Usage: 568848 KBytes > Program aborted at tick 0 > --- BEGIN LIBC BACKTRACE --- > > /home/user/gem5/build/X86/libgem5_opt.so(_Z15print_backtracev+0x30)[0x7f44410f5390] > > /home/user/gem5/build/X86/libgem5_opt.so(_Z12abortHandleri+0x56)[0x7f4441106216] > /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f443f88b210] > /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f443f88b18b] > /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f443f86a859] > build/examples/master_port/gem5.sc(+0x2e32c)[0x55f33154d32c] > > /home/user/gem5/build/X86/libgem5_opt.so(_ZN6System4initEv+0xab)[0x7f4441126f2b] > > /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager13forEachObjectEM9SimObjectFvvE+0x5f)[0x7f44410f5aaf] > > /home/user/gem5/build/X86/libgem5_opt.so(_ZN16CxxConfigManager11instantiateEb+0xa2)[0x7f44410fbfa2] > build/examples/master_port/gem5.sc(+0x359a1)[0x55f3315549a1] > build/examples/master_port/gem5.sc(sc_main+0xf8)[0x55f331535971] > build/systemc/libsystemc.so(sc_elab_and_sim+0xe2)[0x7f44418c4da0] > build/systemc/libsystemc.so(main+0x24)[0x7f44418c4c4e] > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f443f86c0b3] > build/examples/master_port/gem5.sc(+0x167be)[0x55f3315357be] > --- END LIBC BACKTRACE --- > Aborted (core dumped) The generated config file for the slave case is: https://pastebin.com/uNDrQYWr Is there anything I can do? Is this related to the USE_SYSTEMC=False flag? Thanks again Michele Il giorno gio 19 nov 2020 alle ore 13:32 Gabe Black <[email protected]> ha scritto: > If I remember correctly, this is because there is a mistake in the way the > cxx config support handles Param structs and SimObjects that works most of > the time, but fails when it encounters some of the tricks necessary for > gem5's built in systemc kernel. If you disable that (USE_SYSTEMC=False, I > think), then it will leave out that code and should build successfully. If > you plan to use gem5 as a library with other systemc code, for instance as > a black box within a simulation that uses Accellera's systemc kernel, then > you'll want to turn off gem5's built in systemc kernel anyway, since it > would conflict with the other one and wouldn't link properly. > > Gabe > > On Thu, Nov 19, 2020 at 3:09 AM Michele Marazzi via gem5-dev < > [email protected]> wrote: > >> Dear gem5 folks, >> >> I am trying to compile the most updated (master) version of gem5 as a >> library. (note: I've also tried the same with the develop branch, >> hoping it would work). >> >> The architecture I need is x86, so I simply run: >> >> > scons --no-cache --with-cxx-config --without-python --without-tcmalloc >> build/X86/libgem5_opt.so -j 2 >> >> After I have - successfully - compiled gem5 with only >> >> > scons build/X86/gem5.opt -j 2 >> >> No matter what different configurations of compilers/python checkout I >> use, if I keep the flag --with-cxx-config, the compilation results in >> the following error: >> >> [ SHCXX] X86/cxx_config/Gem5ToTlmBridge32.cc -> .os >> build/X86/cxx_config/Gem5ToTlmBridge32.cc: In member function 'virtual >> SimObject* Gem5ToTlmBridge32CxxConfigParams::simObjectCreate()': >> build/X86/cxx_config/Gem5ToTlmBridge32.cc:136:25: error: cannot >> convert 'sc_gem5::Gem5ToTlmBridge<32>*' to 'SimObject*' in return >> return this->create(); >> ^ >> [ SHCXX] X86/cxx_config/Gem5ToTlmBridge64.cc -> .os >> scons: *** [build/X86/cxx_config/Gem5ToTlmBridge32.os] Error 1 >> build/X86/cxx_config/Gem5ToTlmBridge64.cc: In member function 'virtual >> SimObject* Gem5ToTlmBridge64CxxConfigParams::simObjectCreate()': >> build/X86/cxx_config/Gem5ToTlmBridge64.cc:136:25: error: cannot >> convert 'sc_gem5::Gem5ToTlmBridge<64>*' to 'SimObject*' in return >> return this->create(); >> ^ >> >> I'm running Ubuntu 18. >> >> user@pc-10744:~/gem5$ uname -a >> Linux pc-10744 5.4.0-53-generic #59-Ubuntu SMP Wed Oct 21 09:38:44 UTC >> 2020 x86_64 x86_64 x86_64 GNU/Linux >> >> I have tried gcc version 7.5 and 9.3, python is version 3.8.5 >> >> Is there any way of fixing this? Do you have any suggestion, or thing to >> try? >> >> Thank you very much for your time >> Michele >> _______________________________________________ >> gem5-dev mailing list -- [email protected] >> To unsubscribe send an email to [email protected] >> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s >> > -- Michele Marazzi
_______________________________________________ gem5-dev mailing list -- [email protected] To unsubscribe send an email to [email protected] %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
