Deprecate support for Ubuntu 20.04

This commit is contained in:
Jordan Carlin 2025-02-03 20:00:51 -08:00
parent b38900c07b
commit c58ec8eb59
No known key found for this signature in database
5 changed files with 18 additions and 26 deletions

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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"

View File

@ -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"