Jump to content
Lynn Garibaldi

SystemC 2.3.2 Public Review Now Open

Recommended Posts

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 review-systemc@lists.accellera.org or via this forum.

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
  
  to
  
<SystemC Source>/examples/sysc/SC2.1 and <SystemC Source>/examples/sysc/SC2.3
  
repectively.

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  review-systemc@lists.accellera.org 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

Hello,

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/systemc.run.dir/src/main.cpp.o: 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

Hi Ameya,

thanks for testing the 2.3.2 public review release!  You mentioned, that you saw 15 errors when running the regressions on your platform?  Would it be possible to share the list of failing tests and your platform/compiler versions?

As you may have seen, I have opened a new topic about your C++ standard question here:

On 3/1/2017 at 8:09 AM, AmeyaVS said:

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

Thanks for the analysis and the reporting of the issue.  I have prepared a fix for the 2.3.2 final release which avoids the need for the synthesis of the ..._FILTER variable in test script. Instead, the optional filter is substituted directly from within the Makefile and GNU make supports variables starting with a digit.

 

On 3/1/2017 at 8:09 AM, AmeyaVS said:

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).

This topic is under discussion since quite some time both inside and outside of Accellera.  The best option to contribute patches/fixes to the SystemC proof-of-concept implementations is of course to join the corresponding Accellera Working Groups. If this is not an option, let's continue to use this community forum for public discussions around SystemC and its proof-of-concept implementation. 

Greetings from Duisburg,
  Philipp

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

×