This is in the Accellera version of systemc, used when gem5 is built into systemc as a black box. std::gets was depdecated in c++11, and removed entirely in c++14. Since gem5 has moved to c++14, this can't be brought in with "using" in that header. More recent versions of systemc from Accellera may have this fixed, and it's pretty bad practice to have a universal header file squash unrelated namespaces like that in the first place. Rather tha update all of this copy of systemc, this change just makes the smallest adjustment possible to get things to work again. Change-Id: I8a95665d4b5d49ffc014097714cf2e602bf9b937 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/42583 Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu> Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu> Tested-by: kokoro <noreply+kokoro@google.com>
Overview
This repository is a redistribution of the Accellera SystemC 2.3.1 library [1]. This distribution replaces Accellera's Autoconf build system with a SCons build system, which is very useful for integration of SystemC in other SCons based projects, e.g., gem5 [2].
The repository contains all the source files from the Accellera distribution, but strips down the boost dependencies. All references to the boost library are replaced by calls to the C++11 STL. This repository also contains the TLM 2.0 protocl checker from Doulos [3].
Build
To build libsystemc-2.3.1.so, simply type scons. Optionally you can specify the number of jobs.
scons -j N
To build and link to SystemC from another SCons project, simply call the
SConscript located in src/. Be sure to add -std=c++11 to the CXXFLAGS of
your environment and to export the environment as 'env'. In case you build on
OS X, you will need to add -undefined dynamic lookup to your LINKFLAGS.
This is how a minimal SConstruct for your SystemC project could look:
env = Environment()
env.Append(CXXFLAGS=['-std=c++11'])
if env['PLATFORM'] == 'darwin':
env.Append(LINKFLAGS=['-undefined', 'dynamic_lookup'])
systemc = env.SConscript('<path_to_systemc>/src/SConscript', exports=['env'])
env.Program('example', ['example.cc', systemc])