Lynn Garibaldi

SystemC 2.3.2 Public Review Now Open

3 posts in this topic

The Accellera SystemC Language Working Group has released the proposed SystemC 2.3.2 for testing and feedback from the community. This is a maintenance release with some new features including a foundation for C++11/14 enablement, a centralized global name registration enabling CCI naming requirements, new TLM socket and sc_signal base classes, and updated compiler and platform support including Windows DLL support and an experimental CMake build system. There are also many bug-fixes and general clean-up. Licensed under Apache 2.0, the release package contains the SystemC class library and the regression test suite. It can be downloaded here.

The review period is open until May 31, 2017. Feedback is welcome and can be submitted either by email to or via this forum.

maehne and AmeyaVS like this

Share this post

Link to post
Share on other sites

Hello Everyone,

I tried building the SystemC-2.3.2 draft release.

The first failure I hit was the built-in make check tests failing under newer build environment.

This problem has already been discussed in the forum:

One possible solution(which is a temporary fix) has been discussed:

Better solution would be to rename the examples folders under(It would also require some changes in the autotools config files):

<SystemC Source>/examples/sysc/2.1 and <SystemC Source>/examples/sysc/2.3
<SystemC Source>/examples/sysc/SC2.1 and <SystemC Source>/examples/sysc/SC2.3

I will try to send a patch for fixing the build.

P.S:  On the side note:

  • Would it be possible to have an official publicly hosted repository? (Something on the lines of Github/Bitbucket, where one can provide patches or fixes to the issues).
    • Provide faster turn around time to fix issues than waiting for an official release or comments.
    • Better than polluting the forums with build issues, partial workarounds and patches floating around.
    • Also it would not lead to spamming of the list with people facing similar issues or bug reports.

It would be better that people discuss technically on SystemC usage and other issues or possible help/suggestions on the forum.


I would love to hear from senior members of the forum on the same.


Best Regards,

Ameya Vikram Singh

Share this post

Link to post
Share on other sites


Also hit a build issue when mixing different compiler standard compiler flags:

The build error:

SystemC review error: when building example using c++11 option and compiler supports: C++14 also.

CMakeFiles/ In function `__static_initialization_and_destruction_0':
/home/ameya/sysc2.3.2_rew/include/sysc/kernel/sc_ver.h:179: undefined reference to `sc_core::sc_api_version_2_3_2_cxx201103L<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_2_cxx201103L(sc_core::sc_writer_policy)'

Compiler used g++ 6.3

Using same compiler to build systemc-2.3.1a results in no issues, also when mixing C++ standard compiler flags to build SystemC models.

While building the SystemC_2.3.2_draft one has to maintain the C++ standard compiler flags(-std=c++11 or -std=c++14), that is supported by the g++ compiler by default and any project using overridden standard compiler flags also needed to be updated to to default compiler standard flags.

Here are the differences in the symbols generated by the same compiler over different versions of systemc:

SystemC-2.3.1a: (Using g++ 6.3.0)

000000000000023e T sc_core::sc_api_version_2_3_1<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_1(sc_core::sc_writer_policy)
000000000000023e T sc_core::sc_api_version_2_3_1<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_1(sc_core::sc_writer_policy)
000000000000002c b sc_core::sc_api_version_2_3_1<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_1(sc_core::sc_writer_policy)::default_writer_policy_config
000000000000002a b sc_core::sc_api_version_2_3_1<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_1(sc_core::sc_writer_policy)::default_writer_policy_config_seen

SystemC-2.3.2-draft review:(Using g++ 6.3.0)

00000000000007d0 T sc_core::sc_api_version_2_3_2_cxx201402L<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_2_cxx201402L(sc_core::sc_writer_policy)
00000000000007d0 T sc_core::sc_api_version_2_3_2_cxx201402L<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_2_cxx201402L(sc_core::sc_writer_policy)
0000000000000028 b sc_core::sc_api_version_2_3_2_cxx201402L<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_2_cxx201402L(sc_core::sc_writer_policy)::default_writer_policy_config
000000000000002c b sc_core::sc_api_version_2_3_2_cxx201402L<&sc_core::SC_DISABLE_VIRTUAL_BIND_UNDEFINED_>::sc_api_version_2_3_2_cxx201402L(sc_core::sc_writer_policy)::default_writer_policy_config_seen

Can anyone comment why C++ standard specific API specs are required?

For now I can circumvent the issue while setting either no compiler standard flags, or commenting out the compiler standard is passed into the build system.

Is the SystemC library will be following this trend to build different version supporting different compiler standard flags?

  • Note: As per cursory look into the source code I don't see any other API dependency to have information about the C++ standard being used to build and compile the SystemC library and the SystemC models.


Would like to hear community members thoughts on this?

Best Regards,

Ameya Vikram Singh

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now