Skip to content

Bootstrapping

Jeremy edited this page May 26, 2020 · 6 revisions

Getting Started

Because SST/macro requires Clang's libtooling for source-to-source transformations (and certain pieces of code must be kept in a separate GPL repository), it can take a bit of work to get all the pieces of an SST/macro development environment put together. We list the steps required here and show how to do this through Spack (probably the simplest method).

High-level Steps

  • Install bootstrapped Clang (preferrably 9.0 or 10.0)
    • Build and install LLVM/Clang using any compiler
    • Build and install LLVM/Clang using LLVM/Clang
  • Install SST/macro, sst++, sstcc, using Clang
  • Install SST transports library using Clang as the compiler
  • Configure your project using sstcc and sst++ as the compiler and pointing to simulator transport libraries

Spack Steps

This can take a long time (hours) as Spack needs to install numerous packages to get started. It is best to let these run in the background.

  • Check out Spack repo and add to path
  • Build and install LLVM/Clang using available compiler
    • spack install llvm+clang@9.0.1
  • Build and install LLVM/Clang using LLVM/Clang. You first need to add your spack-built Clang to its compiler list.
    • spack load llvm+clang@9.0.1
    • spack compiler add
    • spack install llvm+clang@.0.1 %clang@9.0.1
  • Build and install SST transports library. This will automatically build SST/macro as a dependency. Note the special modifiers to build a particular version of SST/macro.
    • spack install sst-transports ^sst-macro@develop~core+skeletonizer %clang@9.0.1
  • Configure your project using sstcc and sst++ as the compilers and pointing to simulator transport libraries
    • Run spack find sst-macro and spack find sst-transports to find the install prefixes of sst++ and the simulator transport libraries.
    • Configure with CXX=sst++ CC=sstcc and the simulator transport libraries
Clone this wiki locally