From 3875dcdfd7b3984beed4e4c3faa990261ec18512 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Tue, 25 Jun 2024 12:48:38 -0700 Subject: [PATCH] util-docker: Update the sst Dockerfile 1. Builds on top of the Ubuntu 24.04 all-deps image. 2. Unify the download, build, install, and cleanup steps. Change-Id: I4c2bf8e571dfd228f7df8372cda0f428de59af51 --- util/dockerfiles/sst/Dockerfile | 63 +++++++++++++++------------------ 1 file changed, 28 insertions(+), 35 deletions(-) diff --git a/util/dockerfiles/sst/Dockerfile b/util/dockerfiles/sst/Dockerfile index bf392bcd49..6dafd3a19a 100644 --- a/util/dockerfiles/sst/Dockerfile +++ b/util/dockerfiles/sst/Dockerfile @@ -24,27 +24,22 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FROM --platform=${BUILDPLATFORM} ubuntu:20.04 - -ENV DEBIAN_FRONTEND=noninteractive -RUN apt -y update && apt -y upgrade && \ - apt -y install build-essential git m4 scons zlib1g zlib1g-dev \ - libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ - python3-dev python-is-python3 doxygen libboost-all-dev \ - libhdf5-serial-dev python3-pydot libpng-dev libelf-dev pkg-config pip \ - python3-venv wget +FROM --platform=${BUILDPLATFORM} ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest +# Setting the environmental variables +ENV PATH=$PATH:$SST_CORE_HOME/bin +ENV PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$SST_CORE_HOME/lib/pkgconfig/ ENV SST_CORE_HOME="/sst/" # Use GCC 10 -RUN apt update && apt -y install gcc-10 g++-10 -RUN update-alternatives --install \ - /usr/bin/g++ g++ /usr/bin/g++-10 100 -RUN update-alternatives --install \ - /usr/bin/gcc gcc /usr/bin/gcc-10 100 -RUN update-alternatives --install \ - /usr/bin/c++ c++ /usr/bin/g++-10 100 -RUN update-alternatives --install \ +RUN apt -y update && apt -y install gcc-10 g++-10 &&\ + update-alternatives --install \ + /usr/bin/g++ g++ /usr/bin/g++-10 100 && \ + update-alternatives --install \ + /usr/bin/gcc gcc /usr/bin/gcc-10 100 && \ + update-alternatives --install \ + /usr/bin/c++ c++ /usr/bin/g++-10 100 && \ + update-alternatives --install \ /usr/bin/cc cc /usr/bin/gcc-10 100 # SST Stuff @@ -52,24 +47,22 @@ RUN mkdir /sst # Download and build SST-Core without MPI support WORKDIR /sst/ -RUN wget https://github.com/sstsimulator/sst-core/releases/download/v13.0.0_Final/sstcore-13.0.0.tar.gz; \ - tar xf sstcore-13.0.0.tar.gz; -WORKDIR /sst/sstcore-13.0.0/ -RUN ./configure --prefix=$SST_CORE_HOME --with-python=/usr/bin/python3-config \ - --disable-mpi; \ - make all -j $(nproc); \ - make install; +RUN wget https://github.com/sstsimulator/sst-core/releases/download/v13.0.0_Final/sstcore-13.0.0.tar.gz && \ + tar xf sstcore-13.0.0.tar.gz && \ + cd sstcore-13.0.0/ && \ + ./configure --prefix=$SST_CORE_HOME --with-python=/usr/bin/python3-config \ + --disable-mpi && \ + make all -j $(nproc) && \ + make install && \ + cd /sst && rm -rf sstcore-13.0.0.tar.gz sstcore-13.0.0 # Download and build SST-Elements WORKDIR /sst -RUN wget https://github.com/sstsimulator/sst-elements/releases/download/v13.0.0_Final/sstelements-13.0.0.tar.gz; \ - tar xf sstelements-13.0.0.tar.gz; -WORKDIR /sst/sst-elements-library-13.0.0/ -RUN ./configure --prefix=$SST_CORE_HOME --with-python=/usr/bin/python3-config \ - --with-sst-core=$SST_CORE_HOME; \ - make all -j $(nproc); \ - make install; - -# Setting the environmental variables -ENV PATH=$PATH:$SST_CORE_HOME/bin -ENV PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$SST_CORE_HOME/lib/pkgconfig/ +RUN wget https://github.com/sstsimulator/sst-elements/releases/download/v13.0.0_Final/sstelements-13.0.0.tar.gz && \ + tar xf sstelements-13.0.0.tar.gz && \ + cd sst-elements-library-13.0.0 && \ + ./configure --prefix=$SST_CORE_HOME --with-python=/usr/bin/python3-config \ + --with-sst-core=$SST_CORE_HOME && \ + make all -j $(nproc) && \ + make install && \ + cd /sst && rm -rf sstelements-13.0.0.tar.gz sst-elements-library-13.0.0