-
Notifications
You must be signed in to change notification settings - Fork 40
Bootstrapping
Jeremy edited this page May 26, 2020
·
6 revisions
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).
- 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
andsst++
as the compiler and pointing to simulator transport libraries
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
andsst++
as the compilers and pointing to simulator transport libraries- Run
spack find sst-macro
andspack find sst-transports
to find the install prefixes ofsst++
and the simulator transport libraries. - Configure with
CXX=sst++ CC=sstcc
and the simulator transport libraries
- Run