SST Developer FAQ

This page collects short tidbits of information that may be useful to know.

What is the development workflow for SST?

See Development Workflow for more details.

We attempt to build and test SST on a variety of Linux and MacOS X platforms (See the latest release notes) for more details.

Unfortunately, due to a variety of constraints, we are unable to confirm successful operation of SST on platforms beyond those stated above. We have sought to select the most popular and widely available platforms for our development and testing. It is likely that SST will build and run successfully on platforms other than those listed, but if a user should attempt to build and run SST on an unverified platform, they may encounter unforseen difficulties or incompatibilities particular to the toolsets installed on that platform. If there is enough interest to justify supporting a particular configuration, the SST team will consider adding it to the group of testbeds. Otherwise, users who wish to use SST on an unverified platform should direct their questions to the SST mailing list where the SST developer community can attempt to address their issues.

Why am I getting linking errors when I build SST?

This is typically due to an inconsistency in the toolchain. Each item must be built using the same compiler. If the same compiler is not used consistently in an SST build, a binary incompatibility situation can arise due to the objects using different C++ runtimes.

On Linux:

On MacOS:

1) Xcode uses wrappers (called “gcc” and “g++”) that invoke the LLVM clang and clang++ compilers. This case in particular can cause confusion for those who are unaware of the wrappers. The wrappers can mislead users into thinking that they are using a GNU compiler when they are not. These wrappers are not fully compatible with a real GNU compiler set.

2) When building OpenMPI, understand that the resultant mpicc and mpicxx files are compiler wrappers also. It is important that mpicc and mpicxx wrap the same compiler that is used for the entire build.

What C++ standard does SST support?

As of SST 13.0, the SST project supports C++17.

How do I create the Doxygen output?

Note that the Doxygen output from the development trunk of SST is viewable Here.

  1. Check out the mainline on a host.
$ git clone git clone --recursive https://github.com/sstsimulator/sst.git
$ cd sst
$ git submodule foreach git checkout devel
  1. Run autogen and configure SST (it needs to have a minimal config).
$ cd sst-simulator
$ ./autogen.sh
$ ./configure --disable-silent-rules --prefix=$HOME/local/
  1. Build Doxygen HTML documentation (~60 MB)
$ make html
  1. HTML documentation will be generated in sst-simulator/doc/html. It may be necessary to copy this html directory to a system that has a web browser, such as a laptop.
  2. With a web browser application, open html/index.html