diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index 922d894c5..6075757d1 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -36,10 +36,6 @@ jobs: matrix: include: # Ubuntu Installations - - name: ubuntu-20.04 - image: ubuntu:20.04 - imageFamily: debian - regressionFail: true - name: ubuntu-22.04 image: ubuntu:22.04 imageFamily: debian diff --git a/README.md b/README.md index b700df728..b9d3cdf3e 100644 --- a/README.md +++ b/README.md @@ -83,12 +83,12 @@ Then fork and clone the repo, source setup, make the tests and run regression > This section describes the open source toolchain installation. ### Compatibility -The current version of the toolchain has been tested on Ubuntu (versions 20.04 LTS, 22.04 LTS, and 24.04 LTS), Debian (versions 11 and 12), Red Hat/Rocky/AlmaLinux (versions 8 and 9), +The current version of the toolchain has been tested on Ubuntu (versions 22.04 LTS and 24.04 LTS), Debian (versions 11 and 12), Red Hat/Rocky/AlmaLinux (versions 8 and 9), and SUSE version 15.6. Only the latest minor release of each major version is tested. > [!WARNING] -> - Ubuntu 22.04LTS is incompatible with Synopsys Design Compiler. -> - Verilator currently fails to simulate correctly on Ubuntu 20.04 LTS and Red Hat/Rocky/AlmaLinux 8. +> - Ubuntu is incompatible with Synopsys Design Compiler. +> - Verilator currently fails to simulate correctly on Red Hat/Rocky/AlmaLinux 8. ### Overview The toolchain installation script installs the following tools: diff --git a/bin/wally-distro-check.sh b/bin/wally-distro-check.sh index 2f24c3daf..c6440d256 100755 --- a/bin/wally-distro-check.sh +++ b/bin/wally-distro-check.sh @@ -4,7 +4,7 @@ ## ## Written: Jordan Carlin, jcarlin@hmc.edu ## Created: 30 June 2024 -## Modified: +## Modified: 3 February 2025 - Deprecate Ubuntu 20.04 ## ## Purpose: Check for compatible Linux distibution and set variables accordingly ## @@ -98,8 +98,12 @@ elif [[ "$ID" == ubuntu || "$ID_LIKE" == *ubuntu* ]]; then else export UBUNTU_VERSION="${VERSION_ID:0:2}" fi - if (( UBUNTU_VERSION < 20 )); then - printf "${FAIL_COLOR}%s\n${ENDC}" "The Wally installation script has only been tested with Ubuntu versions 20.04 LTS, 22.04 LTS, and 24.04 LTS. You have version $VERSION." + if (( UBUNTU_VERSION < 22 )); then + printf "${FAIL_COLOR}%s\n${ENDC}" "The Wally installation script is only compatible with Ubuntu versions 22.04 LTS and 24.04 LTS. You have version $VERSION." + if (( UBUNTU_VERSION == 20 )); then + printf "${WARNING_COLOR}%s%s\n${ENDC}" "Support for Ubuntu 20.04 was removed after commit b38900c07baab2576d3f62cf1d2e4a729e8a37e5. " \ + "You may try insalling using that version, but there will likely be issues (known issues include an incompatible version of git)." + fi exit 1 fi elif [[ "$ID" == debian || "$ID_LIKE" == *debian* ]]; then @@ -110,7 +114,7 @@ elif [[ "$ID" == debian || "$ID_LIKE" == *debian* ]]; then fi export DEBIAN_VERSION="$VERSION_ID" if (( DEBIAN_VERSION < 11 )); then - printf "${FAIL_COLOR}%s\n${ENDC}" "The Wally installation script has only been tested with Debian versions 11 and 12. You have version $VERSION." + printf "${FAIL_COLOR}%s\n${ENDC}" "The Wally installation script is only compatible with Debian versions 11 and 12. You have version $VERSION." exit 1 fi elif [[ "$ID" == opensuse-leap || "$ID" == sles || "$ID_LIKE" == *suse* ]]; then diff --git a/bin/wally-package-install.sh b/bin/wally-package-install.sh index d7ca0a718..9702a9d10 100755 --- a/bin/wally-package-install.sh +++ b/bin/wally-package-install.sh @@ -4,7 +4,7 @@ ## ## Written: Jordan Carlin, jcarlin@hmc.edu ## Created: 30 June 2024 -## Modified: +## Modified: 3 February 2025 - Deprecate Ubuntu 20.04 ## ## Purpose: Package manager installation for open source tool chain installation script ## @@ -74,16 +74,13 @@ case "$FAMILY" in PYTHON_VERSION=python3.12 elif (( UBUNTU_VERSION >= 22 )); then PYTHON_VERSION=python3.11 - elif (( UBUNTU_VERSION >= 20 )); then - PYTHON_VERSION=python3.9 - OTHER_PACKAGES+=(gcc-10 g++-10 cpp-10) # Newer version of gcc needed for Verilator elif (( DEBIAN_VERSION >= 12 )); then PYTHON_VERSION=python3.11 elif (( DEBIAN_VERSION >= 11 )); then PYTHON_VERSION=python3.9 fi # Mold not available in older distros for Verilator, will download binary instead - if (( UBUNTU_VERSION != 20 && DEBIAN_VERSION != 11 )); then + if (( DEBIAN_VERSION != 11 )); then VERILATOR_PACKAGES+=(mold) fi PACKAGE_MANAGER="DEBIAN_FRONTEND=noninteractive apt-get -y" diff --git a/bin/wally-tool-chain-install.sh b/bin/wally-tool-chain-install.sh index 9ffddf8bc..c932d8c96 100755 --- a/bin/wally-tool-chain-install.sh +++ b/bin/wally-tool-chain-install.sh @@ -8,13 +8,14 @@ ## Modified: 23 March 2023 ## Modified: 30 June 2024, Jordan Carlin jcarlin@hmc.edu ## Modified: 1 September 2024 +## Modified: 3 February 2025 - Deprecate Ubuntu 20.04 ## ## Purpose: Open source tool chain installation script ## ## A component of the CORE-V-WALLY configurable RISC-V project. ## https://github.com/openhwgroup/cvw ## -## Copyright (C) 2021-24 Harvey Mudd College & Oklahoma State University +## Copyright (C) 2021-25 Harvey Mudd College & Oklahoma State University ## ## SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 ## @@ -199,12 +200,6 @@ elif [ "$FAMILY" == suse ]; then ln -vsf /usr/bin/$f-13 "$RISCV"/gcc-13/bin/$f done export PATH="$RISCV"/gcc-13/bin:$PATH -elif (( UBUNTU_VERSION == 20 )); then - mkdir -p "$RISCV"/gcc-10/bin - for f in gcc cpp g++ gcc-ar gcc-nm gcc-ranlib gcov gcov-dump gcov-tool lto-dump; do - ln -vsf /usr/bin/$f-10 "$RISCV"/gcc-10/bin/$f - done - export PATH="$RISCV"/gcc-10/bin:$PATH fi @@ -231,7 +226,7 @@ source "$RISCV"/riscv-python/bin/activate # reload python virtual environment echo -e "${SUCCESS_COLOR}Python environment successfully configured!${ENDC}" # Extra dependecies needed for older distros that don't have new enough versions available from package manager -if (( RHEL_VERSION == 8 )) || (( UBUNTU_VERSION == 20 )); then +if (( RHEL_VERSION == 8 )); then # Newer versin of glib required for QEMU. # Anything newer than this won't build on red hat 8 STATUS="glib" @@ -272,7 +267,7 @@ if (( RHEL_VERSION == 8 )); then fi # Mold needed for Verilator -if (( UBUNTU_VERSION == 20 || DEBIAN_VERSION == 11 )) || [ "$FAMILY" == suse ]; then +if (( DEBIAN_VERSION == 11 )) || [ "$FAMILY" == suse ]; then STATUS="mold" if [ ! -e "$RISCV"/bin/mold ]; then section_header "Installing mold" @@ -287,7 +282,7 @@ if (( UBUNTU_VERSION == 20 || DEBIAN_VERSION == 11 )) || [ "$FAMILY" == suse ]; fi # Newer version of CMake needed to build sail-riscv model (at least 3.20) -if (( UBUNTU_VERSION == 20 || DEBIAN_VERSION == 11 )); then +if (( DEBIAN_VERSION == 11 )); then STATUS="cmake" if [ ! -e "$RISCV"/bin/cmake ]; then section_header "Installing cmake"