From 2fa8f20f1b79227d7d1fb8e9c5319627dda0a7f5 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Fri, 3 Jul 2026 22:46:09 -0700 Subject: [PATCH 01/26] website: rm ref to eol Ubuntu vers in build docs --- .../general_docs/building/index.md | 34 ++++--------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 4d775b342..0249f36a9 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -80,31 +80,6 @@ sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/c sudo update-alternatives --config clang-format ``` -### Setup on Ubuntu 20.04 (gem5 >= v21.0) - -If compiling gem5 on Ubuntu 20.04, or related Linux distributions, you may -install all these dependencies using APT: - -```bash -sudo apt install build-essential git m4 scons zlib1g zlib1g-dev \ - libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ - python3-dev python-is-python3 libboost-all-dev pkg-config gcc-10 g++-10 \ - python3-tk clang-format-18 -``` - -You may need to configure `clang-format-18` as the default -`clang-format` for your system. - -```bash -# Configure clang-format-18 and git-clang-format-18 as the system defaults. -sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-18 180 \ - --slave /usr/bin/clang-format-diff clang-format-diff /usr/bin/clang-format-diff-18 \ - --slave /usr/bin/git-clang-format git-clang-format /usr/bin/git-clang-format-18 - -# [Optional] Add other alternative versions, and select version 18 as the default version. -sudo update-alternatives --config clang-format -``` - ### Docker For users struggling to setup an environment to build and run gem5, we provide @@ -120,6 +95,9 @@ Ubuntu 24.04 with minimum dependencies: https://ghcr.io/gem5/ubuntu-24.04_min-dependencies:v24-0) ([source Dockerfile](https://github.com/gem5/gem5/blob/v24.0.0.0/util/dockerfiles/ubuntu-24.04_min-dependencies/Dockerfile)). +The following older images are intended for older gem5 releases whose tags +match the image tags. + Ubuntu 22.04 with all optional dependencies: [ghcr.io/gem5/ubuntu-22.04_all-dependencies:v23-0]( https://ghcr.io/gem5/ubuntu-22.04_all-dependencies:v23-0) ([source Dockerfile]( @@ -141,10 +119,10 @@ To obtain a docker image: docker pull ``` -E.g., for Ubuntu 20.04 with all optional dependencies: +E.g., for Ubuntu 24.04 with all optional dependencies: ```bash -docker pull ghcr.io/gem5/ubuntu-20.04_all-dependencies:v23-0 +docker pull ghcr.io/gem5/ubuntu-24.04_all-dependencies:v24-0 ``` Then, to work within this environment, we suggest using the following: @@ -155,7 +133,7 @@ docker run -u $UID:$GID --volume :/gem5 --rm -it Where `` is the full path of the gem5 in your file system, and `` is the image pulled (e.g., -ghcr.io/gem5/ubuntu-22.04_all-dependencies:v23-0`). +`ghcr.io/gem5/ubuntu-24.04_all-dependencies:v24-0`). From this environment, you will be able to build and run gem5 from the `/gem5` directory. From ad496e6b36e2c0289fcd79798f8950c912cefcb6 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Fri, 3 Jul 2026 22:49:44 -0700 Subject: [PATCH 02/26] website: update docs for min Python bump to 3.10 --- _pages/documentation/general_docs/building/index.md | 12 ++++++------ .../learning_gem5/part1/part1_1_building.md | 7 ++++--- .../part1/part1_3_more_complex_config.md | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 0249f36a9..9eafe73ca 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -18,9 +18,8 @@ dependencies are installed**. We ensure that gem5 is compilable with both gcc and clang (see [Dependencies](#dependencies) below for compiler version information). -As of gem5 21.0, **we support building and running gem5 with Python 3.6+ -only**. gem5 20.0 was our last version of gem5 to provide support for Python -2. +We support building and running gem5 with Python 3.10 or newer only. gem5 +20.0 was our last version of gem5 to provide support for Python 2. If running gem5 in a suitable OS/environment is not possible, we have provided pre-prepared [Docker](https://www.docker.com/) images which may be used to @@ -36,8 +35,8 @@ support up to gcc Version 13. Clang 16 (inclusive). * **SCons** : gem5 uses SCons as its build environment. SCons 3.0 or greater must be used. -* **Python 3.6+** : gem5 relies on Python development libraries. gem5 can be -compiled and run in environments using Python 3.6+. +* **Python 3.10+** : gem5 relies on Python development libraries. gem5 can be +compiled and run in environments using Python 3.10+. * **protobuf 2.1+** (Optional): The protobuf library is used for trace generation and playback. * **Boost** (Optional): The Boost library is a set of general purpose C++ @@ -83,7 +82,8 @@ sudo update-alternatives --config clang-format ### Docker For users struggling to setup an environment to build and run gem5, we provide -the following Docker Images: +the following Docker images. For current gem5 checkouts, use an image with +Python 3.10 or newer. Ubuntu 24.04 with all optional dependencies: [ghcr.io/gem5/ubuntu-24.04_all-dependencies:v24-0]( diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index b91892ce6..c7c8ab1e4 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -66,9 +66,10 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install scons ``` -4. Python 3.6+ - : gem5 relies on the Python development libraries. To install - these on Ubuntu use +4. Python 3.10+ + : gem5 relies on the Python development libraries. On Ubuntu, install + the development headers for Python 3.10 or newer. On distributions + where `python3` is Python 3.10 or newer, use ```bash sudo apt install python3-dev diff --git a/_pages/documentation/learning_gem5/part1/part1_3_more_complex_config.md b/_pages/documentation/learning_gem5/part1/part1_3_more_complex_config.md index 4e70dcc67..7553c3129 100644 --- a/_pages/documentation/learning_gem5/part1/part1_3_more_complex_config.md +++ b/_pages/documentation/learning_gem5/part1/part1_3_more_complex_config.md @@ -773,7 +773,7 @@ configuration script is just Python, you can use the Python libraries that support argument parsing. Although pyoptparse is officially deprecated, many of the configuration scripts that ship with gem5 use it instead of pyargparse since gem5's minimum Python version used to be -2.5. The minimum Python version is now 3.6, so Python's argparse is a better +2.5. The minimum Python version is now 3.10, so Python's argparse is a better option when writing new scripts that don't need to interact with the current gem5 scripts. To get started using :pyoptparse, you can consult the online Python documentation. From 8d0c60db70c745d82ac40a41380f56ef47d0bb5f Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:42:15 -0700 Subject: [PATCH 03/26] website: update supported compiler versions Document support for GCC major versions 11 through 16 and Clang major versions 14 through 22 in the build instructions. This matches the compiler support range now tested in gem5 CI and keeps the website aligned with the Ubuntu LTS dependency policy. --- _pages/documentation/general_docs/building/index.md | 8 ++++---- .../documentation/learning_gem5/part1/part1_1_building.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 9eafe73ca..803e9a3c0 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -29,10 +29,10 @@ information on this. ## Dependencies * **git** : gem5 uses git for version control. -* **gcc**: gcc is used to compiled gem5. **Version >=10 must be used**. We -support up to gcc Version 13. -* **Clang**: Clang can also be used. At present, we support Clang 7 to -Clang 16 (inclusive). +* **gcc**: gcc is used to compile gem5. We support GCC major versions 11 +through 16. +* **Clang**: Clang can also be used. At present, we support Clang major +versions 14 through 22. * **SCons** : gem5 uses SCons as its build environment. SCons 3.0 or greater must be used. * **Python 3.10+** : gem5 relies on Python development libraries. gem5 can be diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index c7c8ab1e4..6d05b0dc7 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -43,7 +43,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install git ``` -2. gcc 10+ +2. GCC 11 through 16 : You may need to use environment variables to point to a non-default version of gcc. @@ -53,7 +53,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install build-essential ``` - **We support GCC Versions >=10, up to GCC 13** + **We support GCC major versions 11 through 16.** 3. [SCons 3.0+](http://www.scons.org/) : gem5 uses SCons as its build environment. SCons is like make on @@ -252,8 +252,8 @@ Common errors ### Wrong gcc version ```txt - Error: gcc version 5 or newer required. - Installed version: 4.4.7 + Warning: Detected GCC version 10.5.0 is not officially supported. + gem5 supports GCC major versions 11 through 16. ``` Update your environment variables to point to the right gcc version, or From 4b3d66e2b312bf5d7c3a87e36c31a95194968dad Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:44:27 -0700 Subject: [PATCH 04/26] website: update minimum SCons version Document SCons 4.0.1 as the minimum supported version. This matches the default package in Ubuntu 22.04, the oldest currently supported Ubuntu LTS release. --- _pages/documentation/general_docs/building/index.md | 2 +- _pages/documentation/learning_gem5/part1/part1_1_building.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 803e9a3c0..7eb86693b 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -33,7 +33,7 @@ information on this. through 16. * **Clang**: Clang can also be used. At present, we support Clang major versions 14 through 22. -* **SCons** : gem5 uses SCons as its build environment. SCons 3.0 or greater +* **SCons** : gem5 uses SCons as its build environment. SCons 4.0.1 or greater must be used. * **Python 3.10+** : gem5 relies on Python development libraries. gem5 can be compiled and run in environments using Python 3.10+. diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index 6d05b0dc7..6f4878787 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -55,7 +55,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev **We support GCC major versions 11 through 16.** -3. [SCons 3.0+](http://www.scons.org/) +3. [SCons 4.0.1+](http://www.scons.org/) : gem5 uses SCons as its build environment. SCons is like make on steroids and uses Python scripts for all aspects of the build process. This allows for a very flexible (if slow) build system. From da99182c0c12b1323fe633b19dbb5ee2f423fdcf Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:45:56 -0700 Subject: [PATCH 05/26] website: update minimum protobuf version Document protobuf 3.12.4 as the minimum supported optional trace dependency. This follows the default package in Ubuntu 22.04, the oldest supported Ubuntu LTS release. --- _pages/documentation/general_docs/building/index.md | 2 +- _pages/documentation/learning_gem5/part1/part1_1_building.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 7eb86693b..48a514d64 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -37,7 +37,7 @@ versions 14 through 22. must be used. * **Python 3.10+** : gem5 relies on Python development libraries. gem5 can be compiled and run in environments using Python 3.10+. -* **protobuf 2.1+** (Optional): The protobuf library is used for trace +* **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost** (Optional): The Boost library is a set of general purpose C++ libraries. It is a necessary dependency if you wish to use the SystemC diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index 6f4878787..4aa7bee2d 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -75,7 +75,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install python3-dev ``` -5. [protobuf](https://developers.google.com/protocol-buffers/) 2.1+ (**Optional**) +5. [protobuf](https://developers.google.com/protocol-buffers/) 3.12.4+ (**Optional**) : "Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data." In gem5, the [protobuf](https://developers.google.com/protocol-buffers/) From 65708499220a49a2200be1f64e261559ec68b5fb Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:46:57 -0700 Subject: [PATCH 06/26] website: document minimum Boost version Document Boost 1.74 as the minimum supported optional SystemC dependency. This follows the default Boost package in Ubuntu 22.04, the oldest supported Ubuntu LTS release. --- _pages/documentation/general_docs/building/index.md | 2 +- _pages/documentation/learning_gem5/part1/part1_1_building.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 48a514d64..8e2a192c2 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -39,7 +39,7 @@ must be used. compiled and run in environments using Python 3.10+. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. -* **Boost** (Optional): The Boost library is a set of general purpose C++ +* **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ libraries. It is a necessary dependency if you wish to use the SystemC implementation. diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index 4aa7bee2d..de08f80d6 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -88,7 +88,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install libprotobuf-dev protobuf-compiler libgoogle-perftools-dev ``` -6. [Boost](https://www.boost.org/) (**Optional**) +6. [Boost](https://www.boost.org/) 1.74+ (**Optional**) : The Boost library is a set of general purpose C++ libraries. It is a necessary dependency if you wish to use the SystemC implementation. ``` From 12615d339a2bcb6be8605f4aacad353af4962e47 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:47:53 -0700 Subject: [PATCH 07/26] website: document minimum Git version Document Git 2.34.1 as the minimum supported version. This follows the default Git package in Ubuntu 22.04, the oldest supported Ubuntu LTS release. --- _pages/documentation/general_docs/building/index.md | 2 +- _pages/documentation/learning_gem5/part1/part1_1_building.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 8e2a192c2..a21cfe948 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -28,7 +28,7 @@ information on this. ## Dependencies -* **git** : gem5 uses git for version control. +* **git 2.34.1+** : gem5 uses git for version control. * **gcc**: gcc is used to compile gem5. We support GCC major versions 11 through 16. * **Clang**: Clang can also be used. At present, we support Clang major diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index de08f80d6..8a2f4fab0 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -32,7 +32,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev ``` 1. git ([Git](https://git-scm.com/)): - : The gem5 project uses [Git](https://git-scm.com/) for version + : The gem5 project uses [Git](https://git-scm.com/) 2.34.1+ for version control. [Git](https://git-scm.com/) is a distributed version control system. More information about [Git](https://git-scm.com/) can be found by following the link. From 3374bada4e27e1a1a6a123394bee79dbd2c119b6 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:52:22 -0700 Subject: [PATCH 08/26] website: document minimum zlib version Ubuntu 22.04 ships zlib 1.2.11, while newer current Ubuntu LTS releases provide newer zlib versions. Document 1.2.11 as the minimum supported version so the build instructions match the oldest supported LTS default. --- _pages/documentation/general_docs/building/index.md | 1 + .../learning_gem5/part1/part1_1_building.md | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index a21cfe948..df3f38079 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -37,6 +37,7 @@ versions 14 through 22. must be used. * **Python 3.10+** : gem5 relies on Python development libraries. gem5 can be compiled and run in environments using Python 3.10+. +* **zlib 1.2.11+** : gem5 uses zlib for compression support. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index 8a2f4fab0..fccdaec8c 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -75,7 +75,14 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install python3-dev ``` -5. [protobuf](https://developers.google.com/protocol-buffers/) 3.12.4+ (**Optional**) +5. [zlib](https://zlib.net/) 1.2.11+ + : gem5 uses zlib for compression support. + + ```bash + sudo apt install zlib1g zlib1g-dev + ``` + +6. [protobuf](https://developers.google.com/protocol-buffers/) 3.12.4+ (**Optional**) : "Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data." In gem5, the [protobuf](https://developers.google.com/protocol-buffers/) @@ -88,7 +95,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install libprotobuf-dev protobuf-compiler libgoogle-perftools-dev ``` -6. [Boost](https://www.boost.org/) 1.74+ (**Optional**) +7. [Boost](https://www.boost.org/) 1.74+ (**Optional**) : The Boost library is a set of general purpose C++ libraries. It is a necessary dependency if you wish to use the SystemC implementation. ``` @@ -187,6 +194,7 @@ The output should look something like below (For gem5 >= 24.1): Checking Python version... (cached) 3.12.3 Checking for accept(0,0,0) in C++ library None... (cached) yes Checking for zlibVersion() in C++ library z... (cached) yes + Checking zlib version... (cached) yes Checking for C library tcmalloc_minimal... (cached) yes Building in /home/bees/gem5-4th-worktree/build/ALL "build_tools/kconfig_base.py" "/home/bees/gem5-4th-worktree/build/ALL/gem5.build/Kconfig" "/home/bees/gem5-4th-worktree/src/Kconfig" From a94361490e68b5fdae4eb6b7280393788b1435d9 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:54:28 -0700 Subject: [PATCH 09/26] website: document minimum GNU m4 version Ubuntu 22.04 ships GNU m4 1.4.18, while newer current Ubuntu LTS releases provide newer versions. Document 1.4.18 as the minimum supported version for the libelf source generation dependency. --- _pages/documentation/general_docs/building/index.md | 1 + .../learning_gem5/part1/part1_1_building.md | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index df3f38079..9728bd565 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -38,6 +38,7 @@ must be used. * **Python 3.10+** : gem5 relies on Python development libraries. gem5 can be compiled and run in environments using Python 3.10+. * **zlib 1.2.11+** : gem5 uses zlib for compression support. +* **GNU m4 1.4.18+** : gem5 uses GNU m4 to generate libelf sources. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index fccdaec8c..f8c79c61f 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -82,7 +82,14 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install zlib1g zlib1g-dev ``` -6. [protobuf](https://developers.google.com/protocol-buffers/) 3.12.4+ (**Optional**) +6. [GNU m4](https://www.gnu.org/software/m4/) 1.4.18+ + : gem5 uses GNU m4 to generate libelf sources. + + ```bash + sudo apt install m4 + ``` + +7. [protobuf](https://developers.google.com/protocol-buffers/) 3.12.4+ (**Optional**) : "Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data." In gem5, the [protobuf](https://developers.google.com/protocol-buffers/) @@ -95,7 +102,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install libprotobuf-dev protobuf-compiler libgoogle-perftools-dev ``` -7. [Boost](https://www.boost.org/) 1.74+ (**Optional**) +8. [Boost](https://www.boost.org/) 1.74+ (**Optional**) : The Boost library is a set of general purpose C++ libraries. It is a necessary dependency if you wish to use the SystemC implementation. ``` From 981511a5884098df07cbdda7f8f0efc793145afd Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:55:24 -0700 Subject: [PATCH 10/26] website: document minimum pkg-config version Ubuntu 22.04 ships pkg-config 0.29.2, while newer current Ubuntu LTS releases provide newer pkgconf-compatible packages. Document 0.29.2 as the minimum supported version for optional package discovery. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 9728bd565..168a527c0 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -39,6 +39,8 @@ must be used. compiled and run in environments using Python 3.10+. * **zlib 1.2.11+** : gem5 uses zlib for compression support. * **GNU m4 1.4.18+** : gem5 uses GNU m4 to generate libelf sources. +* **pkg-config 0.29.2+** (Optional): gem5 uses pkg-config to discover optional +libraries when they are installed. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From 64d35f3edbcf2e1af2a7078bc6cc3e4b8fe4e9ca Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:56:24 -0700 Subject: [PATCH 11/26] website: document minimum libpng version Ubuntu 22.04 ships libpng 1.6.37, while newer current Ubuntu LTS releases provide newer versions. Document 1.6.37 as the minimum supported version for optional PNG framebuffer output. --- _pages/documentation/general_docs/building/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 168a527c0..85576b698 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -41,6 +41,7 @@ compiled and run in environments using Python 3.10+. * **GNU m4 1.4.18+** : gem5 uses GNU m4 to generate libelf sources. * **pkg-config 0.29.2+** (Optional): gem5 uses pkg-config to discover optional libraries when they are installed. +* **libpng 1.6.37+** (Optional): libpng enables PNG framebuffer output. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From aba1e9be10be4e7e72c0b128d150b22df8565522 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:56:55 -0700 Subject: [PATCH 12/26] website: document minimum elfutils libelf version Ubuntu 22.04 ships elfutils libelf 0.186, while newer current Ubuntu LTS releases provide newer versions. Document 0.186 as the minimum supported version for the libelf development package named in the build instructions. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 85576b698..ad63c8562 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -42,6 +42,8 @@ compiled and run in environments using Python 3.10+. * **pkg-config 0.29.2+** (Optional): gem5 uses pkg-config to discover optional libraries when they are installed. * **libpng 1.6.37+** (Optional): libpng enables PNG framebuffer output. +* **elfutils libelf 0.186+** (Optional): libelf provides ELF development files +on Linux distributions. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From eec2f2b828244e6bd2b6f25ce4d247fe303322fc Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 01:58:11 -0700 Subject: [PATCH 13/26] website: document minimum Capstone version Ubuntu 22.04 and 24.04 ship Capstone 4.0.2, while Ubuntu 26.04 ships Capstone 5.0.7. Document 4.0.2 as the minimum supported version for optional disassembly support. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index ad63c8562..04ea52a8e 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -44,6 +44,8 @@ libraries when they are installed. * **libpng 1.6.37+** (Optional): libpng enables PNG framebuffer output. * **elfutils libelf 0.186+** (Optional): libelf provides ELF development files on Linux distributions. +* **Capstone 4.0.2+** (Optional): Capstone enables optional instruction +disassembly support. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From 933c16ce2efb48b605910fd5b0029d60a0023966 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:02:31 -0700 Subject: [PATCH 14/26] website: document minimum HDF5 version Ubuntu 22.04 ships HDF5 1.10.7, while newer current Ubuntu LTS releases provide newer versions. Document 1.10.7 as the minimum supported version for optional HDF5 statistics output. Also update the Ubuntu package name in the build instructions to libhdf5-dev, which is the development package available on current Ubuntu LTS releases. --- _pages/documentation/general_docs/building/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 04ea52a8e..795a8858c 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -46,6 +46,7 @@ libraries when they are installed. on Linux distributions. * **Capstone 4.0.2+** (Optional): Capstone enables optional instruction disassembly support. +* **HDF5 1.10.7+** (Optional): HDF5 enables optional HDF5 statistics output. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ @@ -60,7 +61,7 @@ install all these dependencies using APT: ```bash sudo apt install build-essential scons python3-dev git pre-commit zlib1g zlib1g-dev \ libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ - libboost-all-dev libhdf5-serial-dev python3-pydot python3-venv python3-tk mypy \ + libboost-all-dev libhdf5-dev python3-pydot python3-venv python3-tk mypy \ m4 libcapstone-dev libpng-dev libelf-dev pkg-config wget cmake doxygen clang-format ``` From 2380248bd75d181e65626d043a57cd94a70e8912 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:03:00 -0700 Subject: [PATCH 15/26] website: document minimum google-perftools version Ubuntu 22.04 ships google-perftools 2.9.1, while newer current Ubuntu LTS releases provide newer versions. Document 2.9.1 as the minimum supported version for optional tcmalloc support. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 795a8858c..df715962d 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -47,6 +47,8 @@ on Linux distributions. * **Capstone 4.0.2+** (Optional): Capstone enables optional instruction disassembly support. * **HDF5 1.10.7+** (Optional): HDF5 enables optional HDF5 statistics output. +* **google-perftools 2.9.1+** (Optional): google-perftools provides tcmalloc, +which gem5 can link against for improved performance. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From 0e94fa190085059f512861194b67abd50295c3bf Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:04:11 -0700 Subject: [PATCH 16/26] website: document minimum CMake version Ubuntu 22.04 ships CMake 3.22.1, while newer current Ubuntu LTS releases provide newer versions. Document 3.22.1 as the minimum supported version for the optional DRAMSys integration. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index df715962d..951cea0d7 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -49,6 +49,8 @@ disassembly support. * **HDF5 1.10.7+** (Optional): HDF5 enables optional HDF5 statistics output. * **google-perftools 2.9.1+** (Optional): google-perftools provides tcmalloc, which gem5 can link against for improved performance. +* **CMake 3.22.1+** (Optional): CMake is required when building the optional +DRAMSys integration. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From 66c71229ab0e2faccdc003ac1d3aa2bea7c0c770 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:04:38 -0700 Subject: [PATCH 17/26] website: document minimum Doxygen version Ubuntu 22.04 ships Doxygen 1.9.1, while newer current Ubuntu LTS releases provide newer versions. Document 1.9.1 as the minimum supported version for generating source documentation. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 951cea0d7..9a47a1a0c 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -51,6 +51,8 @@ disassembly support. which gem5 can link against for improved performance. * **CMake 3.22.1+** (Optional): CMake is required when building the optional DRAMSys integration. +* **Doxygen 1.9.1+** (Optional): Doxygen is used to generate source +documentation. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From 778ca588143cfb7abaa2dbdffe91a0914a514f8f Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:05:08 -0700 Subject: [PATCH 18/26] website: document minimum wget version Ubuntu 22.04 ships wget 1.21.2, while newer current Ubuntu LTS releases provide newer versions. Document 1.21.2 as the minimum supported version for setup, Docker, and tutorial download flows. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 9a47a1a0c..32be65b31 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -53,6 +53,8 @@ which gem5 can link against for improved performance. DRAMSys integration. * **Doxygen 1.9.1+** (Optional): Doxygen is used to generate source documentation. +* **wget 1.21.2+** (Optional): wget is used by setup, Docker, and tutorial +download flows. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From df0d27fac6e5e0d80c35ee6ae5c6810859c9140c Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:05:38 -0700 Subject: [PATCH 19/26] website: document minimum pydot version Ubuntu 22.04 ships pydot 1.4.2, while newer current Ubuntu LTS releases provide compatible or newer versions. Document 1.4.2 as the minimum supported version for optional dot graph generation. --- _pages/documentation/general_docs/building/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 32be65b31..aebd8230a 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -55,6 +55,7 @@ DRAMSys integration. documentation. * **wget 1.21.2+** (Optional): wget is used by setup, Docker, and tutorial download flows. +* **pydot 1.4.2+** (Optional): pydot enables optional dot graph generation. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From 9368c8d1d6db22b3f691ed22fdb079edacef065a Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:06:18 -0700 Subject: [PATCH 20/26] website: document minimum mypy version Ubuntu 22.04 ships mypy 0.942, while newer current Ubuntu LTS releases provide newer versions. Document 0.942 as the minimum supported version for Python type-checking and stub generation tooling. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index aebd8230a..83f8e6366 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -56,6 +56,8 @@ documentation. * **wget 1.21.2+** (Optional): wget is used by setup, Docker, and tutorial download flows. * **pydot 1.4.2+** (Optional): pydot enables optional dot graph generation. +* **mypy 0.942+** (Optional): mypy is used by Python type-checking and stub +generation tooling. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From b04341bb8d8915ba1a72bc0d692b62fbab34728a Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:07:24 -0700 Subject: [PATCH 21/26] website: document minimum pre-commit version Ubuntu 22.04 ships pre-commit 2.17.0, while newer current Ubuntu LTS releases provide newer versions. Document 2.17.0 as the minimum supported version for local style and commit hooks. --- _pages/documentation/general_docs/building/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 83f8e6366..969557af0 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -58,6 +58,8 @@ download flows. * **pydot 1.4.2+** (Optional): pydot enables optional dot graph generation. * **mypy 0.942+** (Optional): mypy is used by Python type-checking and stub generation tooling. +* **pre-commit 2.17.0+** (Optional): pre-commit runs gem5's local style and +commit hooks. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ From e5e6d9df3470e8834a899b97fb463a3be0d8ea0a Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:09:21 -0700 Subject: [PATCH 22/26] website: document minimum clang-format version Ubuntu 22.04 ships clang-format 14, while newer current Ubuntu LTS releases provide newer versions. Document 14 as the minimum supported version for gem5's formatting hook. Update the Ubuntu 22.04 setup instructions to use the distribution clang-format package instead of the stale clang-format-15 alternative setup. --- .../general_docs/building/index.md | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 969557af0..1346d7272 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -60,6 +60,8 @@ download flows. generation tooling. * **pre-commit 2.17.0+** (Optional): pre-commit runs gem5's local style and commit hooks. +* **clang-format 14+** (Optional): clang-format is used by gem5's formatting +hook. * **protobuf 3.12.4+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ @@ -86,20 +88,7 @@ install all these dependencies using APT: ```bash sudo apt install build-essential git m4 scons zlib1g zlib1g-dev \ libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ - python3-dev libboost-all-dev pkg-config python3-tk clang-format-15 -``` - -You may need to configure `clang-format-15` as the default -`clang-format` for your system. - -```bash -# Configure clang-format-15 and git-clang-format-15 as the system defaults. -sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-15 150 \ - --slave /usr/bin/clang-format-diff clang-format-diff /usr/bin/clang-format-diff-15 \ - --slave /usr/bin/git-clang-format git-clang-format /usr/bin/git-clang-format-15 - -# [Optional] Add other alternative versions, and select version 15 as the default version. -sudo update-alternatives --config clang-format + python3-dev libboost-all-dev pkg-config python3-tk clang-format ``` ### Docker From 8a75cbda55a6656b18f855fdd4e57887273382da Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:09:53 -0700 Subject: [PATCH 23/26] website: update Ubuntu 22.04 dependency list The Ubuntu 22.04 setup command lagged behind the full set of dependencies documented in the build instructions. Update it to install the same dependency set as the newer Ubuntu instructions using Ubuntu 22.04's default package versions. --- _pages/documentation/general_docs/building/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 1346d7272..daa1d3bae 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -37,6 +37,8 @@ versions 14 through 22. must be used. * **Python 3.10+** : gem5 relies on Python development libraries. gem5 can be compiled and run in environments using Python 3.10+. +* **Python venv and Tk 3.10+** (Optional): Python virtual environment and Tk +packages support Python tooling and optional graphical configuration tools. * **zlib 1.2.11+** : gem5 uses zlib for compression support. * **GNU m4 1.4.18+** : gem5 uses GNU m4 to generate libelf sources. * **pkg-config 0.29.2+** (Optional): gem5 uses pkg-config to discover optional @@ -88,7 +90,9 @@ install all these dependencies using APT: ```bash sudo apt install build-essential git m4 scons zlib1g zlib1g-dev \ libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ - python3-dev libboost-all-dev pkg-config python3-tk clang-format + libboost-all-dev libhdf5-dev python3-pydot python3-venv python3-tk mypy \ + python3-dev libcapstone-dev libpng-dev libelf-dev pkg-config wget cmake \ + doxygen pre-commit clang-format ``` ### Docker From 5cb107969be429e4a401c5a504a958c93a08a463 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:10:46 -0700 Subject: [PATCH 24/26] website: update tutorial Python package names The learning gem5 build tutorial still used the legacy python-dev and python packages. Update the command to install python3-dev, matching the Python 3.10 minimum support policy. --- _pages/documentation/learning_gem5/part1/part1_1_building.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index f8c79c61f..3fa2c5eac 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -28,7 +28,7 @@ On Ubuntu, you can install all of the required dependencies with the following command. The requirements are detailed below. ```bash -sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev python-dev python +sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev python3-dev ``` 1. git ([Git](https://git-scm.com/)): From 6a78ce7df54a4830a820d1d5f25441dc359ed7dc Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sat, 4 Jul 2026 02:23:15 -0700 Subject: [PATCH 25/26] website: use major.minor dependency minimums Normalize dependency minimums to major.minor granularity instead of documenting patch-level package versions. This keeps the build documentation aligned with the supported-version policy without over-specifying distro patch releases. --- .../general_docs/building/index.md | 30 +++++++++---------- .../learning_gem5/part1/part1_1_building.md | 10 +++---- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index daa1d3bae..25aad7e0c 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -28,43 +28,43 @@ information on this. ## Dependencies -* **git 2.34.1+** : gem5 uses git for version control. +* **git 2.34+** : gem5 uses git for version control. * **gcc**: gcc is used to compile gem5. We support GCC major versions 11 through 16. * **Clang**: Clang can also be used. At present, we support Clang major versions 14 through 22. -* **SCons** : gem5 uses SCons as its build environment. SCons 4.0.1 or greater +* **SCons** : gem5 uses SCons as its build environment. SCons 4.0 or greater must be used. * **Python 3.10+** : gem5 relies on Python development libraries. gem5 can be compiled and run in environments using Python 3.10+. * **Python venv and Tk 3.10+** (Optional): Python virtual environment and Tk packages support Python tooling and optional graphical configuration tools. -* **zlib 1.2.11+** : gem5 uses zlib for compression support. -* **GNU m4 1.4.18+** : gem5 uses GNU m4 to generate libelf sources. -* **pkg-config 0.29.2+** (Optional): gem5 uses pkg-config to discover optional +* **zlib 1.2+** : gem5 uses zlib for compression support. +* **GNU m4 1.4+** : gem5 uses GNU m4 to generate libelf sources. +* **pkg-config 0.29+** (Optional): gem5 uses pkg-config to discover optional libraries when they are installed. -* **libpng 1.6.37+** (Optional): libpng enables PNG framebuffer output. +* **libpng 1.6+** (Optional): libpng enables PNG framebuffer output. * **elfutils libelf 0.186+** (Optional): libelf provides ELF development files on Linux distributions. -* **Capstone 4.0.2+** (Optional): Capstone enables optional instruction +* **Capstone 4.0+** (Optional): Capstone enables optional instruction disassembly support. -* **HDF5 1.10.7+** (Optional): HDF5 enables optional HDF5 statistics output. -* **google-perftools 2.9.1+** (Optional): google-perftools provides tcmalloc, +* **HDF5 1.10+** (Optional): HDF5 enables optional HDF5 statistics output. +* **google-perftools 2.9+** (Optional): google-perftools provides tcmalloc, which gem5 can link against for improved performance. -* **CMake 3.22.1+** (Optional): CMake is required when building the optional +* **CMake 3.22+** (Optional): CMake is required when building the optional DRAMSys integration. -* **Doxygen 1.9.1+** (Optional): Doxygen is used to generate source +* **Doxygen 1.9+** (Optional): Doxygen is used to generate source documentation. -* **wget 1.21.2+** (Optional): wget is used by setup, Docker, and tutorial +* **wget 1.21+** (Optional): wget is used by setup, Docker, and tutorial download flows. -* **pydot 1.4.2+** (Optional): pydot enables optional dot graph generation. +* **pydot 1.4+** (Optional): pydot enables optional dot graph generation. * **mypy 0.942+** (Optional): mypy is used by Python type-checking and stub generation tooling. -* **pre-commit 2.17.0+** (Optional): pre-commit runs gem5's local style and +* **pre-commit 2.17+** (Optional): pre-commit runs gem5's local style and commit hooks. * **clang-format 14+** (Optional): clang-format is used by gem5's formatting hook. -* **protobuf 3.12.4+** (Optional): The protobuf library is used for trace +* **protobuf 3.12+** (Optional): The protobuf library is used for trace generation and playback. * **Boost 1.74+** (Optional): The Boost library is a set of general purpose C++ libraries. It is a necessary dependency if you wish to use the SystemC diff --git a/_pages/documentation/learning_gem5/part1/part1_1_building.md b/_pages/documentation/learning_gem5/part1/part1_1_building.md index 3fa2c5eac..3fcd91b11 100644 --- a/_pages/documentation/learning_gem5/part1/part1_1_building.md +++ b/_pages/documentation/learning_gem5/part1/part1_1_building.md @@ -32,7 +32,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev ``` 1. git ([Git](https://git-scm.com/)): - : The gem5 project uses [Git](https://git-scm.com/) 2.34.1+ for version + : The gem5 project uses [Git](https://git-scm.com/) 2.34+ for version control. [Git](https://git-scm.com/) is a distributed version control system. More information about [Git](https://git-scm.com/) can be found by following the link. @@ -55,7 +55,7 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev **We support GCC major versions 11 through 16.** -3. [SCons 4.0.1+](http://www.scons.org/) +3. [SCons 4.0+](http://www.scons.org/) : gem5 uses SCons as its build environment. SCons is like make on steroids and uses Python scripts for all aspects of the build process. This allows for a very flexible (if slow) build system. @@ -75,21 +75,21 @@ sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev sudo apt install python3-dev ``` -5. [zlib](https://zlib.net/) 1.2.11+ +5. [zlib](https://zlib.net/) 1.2+ : gem5 uses zlib for compression support. ```bash sudo apt install zlib1g zlib1g-dev ``` -6. [GNU m4](https://www.gnu.org/software/m4/) 1.4.18+ +6. [GNU m4](https://www.gnu.org/software/m4/) 1.4+ : gem5 uses GNU m4 to generate libelf sources. ```bash sudo apt install m4 ``` -7. [protobuf](https://developers.google.com/protocol-buffers/) 3.12.4+ (**Optional**) +7. [protobuf](https://developers.google.com/protocol-buffers/) 3.12+ (**Optional**) : "Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data." In gem5, the [protobuf](https://developers.google.com/protocol-buffers/) From 6271e7c95937375e5321911e3eedee37f5bd3312 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Sun, 30 Aug 2026 03:20:26 -0700 Subject: [PATCH 26/26] website: Correct minimum CMake version DRAMSys 5.6 requires CMake 3.25. Align the website requirement with the source build used by the Ubuntu 22.04 dependency image. --- _pages/documentation/general_docs/building/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_pages/documentation/general_docs/building/index.md b/_pages/documentation/general_docs/building/index.md index 25aad7e0c..7f4033b67 100644 --- a/_pages/documentation/general_docs/building/index.md +++ b/_pages/documentation/general_docs/building/index.md @@ -51,7 +51,7 @@ disassembly support. * **HDF5 1.10+** (Optional): HDF5 enables optional HDF5 statistics output. * **google-perftools 2.9+** (Optional): google-perftools provides tcmalloc, which gem5 can link against for improved performance. -* **CMake 3.22+** (Optional): CMake is required when building the optional +* **CMake 3.25+** (Optional): CMake is required when building the optional DRAMSys integration. * **Doxygen 1.9+** (Optional): Doxygen is used to generate source documentation.