From cf2c6c8a36323d3357a9ed7e676620bcb6a6cb62 Mon Sep 17 00:00:00 2001 From: Abraham Gonzalez Date: Thu, 22 Sep 2022 13:42:01 -0700 Subject: [PATCH] Switch to --force | More cleanup --- .github/actions/run-tests/action.yml | 2 +- .github/scripts/remote-do-rtl-build.sh | 2 +- .../scripts/remote-run-firesim-scala-tests.sh | 2 +- build-setup.sh | 43 +++++++++---------- scripts/build-toolchain-extra.sh | 11 ++--- scripts/init-fpga.sh | 1 + scripts/init-software.sh | 1 + .../init-submodules-no-riscv-tools-nolog.sh | 13 +++--- scripts/init-vlsi.sh | 1 + scripts/repo-clean.sh | 17 ++------ scripts/tutorial-setup.sh | 6 ++- 11 files changed, 47 insertions(+), 52 deletions(-) diff --git a/.github/actions/run-tests/action.yml b/.github/actions/run-tests/action.yml index 6803376e..1c554ac4 100644 --- a/.github/actions/run-tests/action.yml +++ b/.github/actions/run-tests/action.yml @@ -23,7 +23,7 @@ runs: - name: Init submodules (since only the RTL is cached) run: | conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-${{ inputs.toolchain }} - ./scripts/init-submodules-no-riscv-tools.sh --skip-validate + ./scripts/init-submodules-no-riscv-tools.sh --force shell: bash -leo pipefail {0} # Note: You shouldn't need the other inputs since it shouldn't build RTL from scratch diff --git a/.github/scripts/remote-do-rtl-build.sh b/.github/scripts/remote-do-rtl-build.sh index 80252511..f3f2d462 100755 --- a/.github/scripts/remote-do-rtl-build.sh +++ b/.github/scripts/remote-do-rtl-build.sh @@ -15,7 +15,7 @@ SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" source $SCRIPT_DIR/defaults.sh cd $REMOTE_CHIPYARD_DIR -./scripts/init-submodules-no-riscv-tools.sh --skip-validate +./scripts/init-submodules-no-riscv-tools.sh --force ./scripts/init-fpga.sh if [ $1 = "group-accels" ]; then diff --git a/.github/scripts/remote-run-firesim-scala-tests.sh b/.github/scripts/remote-run-firesim-scala-tests.sh index bc32055c..1e91489d 100755 --- a/.github/scripts/remote-run-firesim-scala-tests.sh +++ b/.github/scripts/remote-run-firesim-scala-tests.sh @@ -11,7 +11,7 @@ SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" source $SCRIPT_DIR/defaults.sh cd $REMOTE_CHIPYARD_DIR -./scripts/init-submodules-no-riscv-tools.sh --skip-validate +./scripts/init-submodules-no-riscv-tools.sh --force # Run Firesim Scala Tests export FIRESIM_ENV_SOURCED=1; diff --git a/build-setup.sh b/build-setup.sh index 5f302b55..d6969846 100755 --- a/build-setup.sh +++ b/build-setup.sh @@ -4,16 +4,12 @@ set -e set -o pipefail -# On macOS, use GNU readlink from 'coreutils' package in Homebrew/MacPorts -if [ "$(uname -s)" = "Darwin" ] ; then - READLINK=greadlink -else - READLINK=readlink -fi +RDIR=$(git rev-parse --show-toplevel) -# If BASH_SOURCE is undefined, we may be running under zsh, in that case -# provide a zsh-compatible alternative -DIR="$(dirname "$($READLINK -f "${BASH_SOURCE[0]:-${(%):-%x}}")")" +# get helpful utilities +source $RDIR/scripts/utils.sh + +common_setup usage() { echo "Usage: ${0} [OPTIONS] [riscv-tools | esp-tools]" @@ -28,7 +24,8 @@ usage() { echo "Options" echo " --help -h : Display this message" echo " --unpinned-deps -ud : Use unpinned conda environment" - echo " --batch : Skip prompt checking for tagged release/conda" + echo " --force -f : Skip prompt checking for tagged release/conda" + echo " --skip-validate : DEPRECATED: Same functionality as --force" echo " --skip-conda : Skip conda env creation" echo " --skip-toolchain-extra : Skip building extra RISC-V toolchain collateral (Spike, PK, tests, libgloos)" exit "$1" @@ -36,7 +33,7 @@ usage() { TOOLCHAIN="riscv-tools" USE_PINNED_DEPS=true -BATCH_FLAG="" +FORCE_FLAG="" SKIP_CONDA=false SKIP_TOOLCHAIN=false @@ -50,8 +47,8 @@ do TOOLCHAIN=$1 ;; -ud | --unpinned-deps ) USE_PINNED_DEPS=false ;; - --batch) - BATCH_FLAG=$1 ;; + --force | -f | --skip-validate) + FORCE_FLAG=$1 ;; --skip-conda) SKIP_CONDA=true ;; --skip-toolchain-extra) @@ -65,8 +62,8 @@ done if [ "$SKIP_CONDA" = false ]; then # note: lock file must end in .conda-lock.yml - see https://github.com/conda-incubator/conda-lock/issues/154 - LOCKFILE=$DIR/conda-requirements-$TOOLCHAIN-linux-64.conda-lock.yml - YAMLFILE=$DIR/conda-requirements-$TOOLCHAIN.yaml + LOCKFILE=$RDIR/conda-requirements-$TOOLCHAIN-linux-64.conda-lock.yml + YAMLFILE=$RDIR/conda-requirements-$TOOLCHAIN.yaml if [ "$USE_PINNED_DEPS" = false ]; then # auto-gen the lockfile @@ -74,28 +71,28 @@ if [ "$SKIP_CONDA" = false ]; then fi # use conda-lock to create env - conda-lock install -p $DIR/.conda-env $LOCKFILE + conda-lock install -p $RDIR/.conda-env $LOCKFILE - source $DIR/.conda-env/etc/profile.d/conda.sh - conda activate $DIR/.conda-env + source $RDIR/.conda-env/etc/profile.d/conda.sh + conda activate $RDIR/.conda-env fi -if [ -z "$BATCH_FLAG" ]; then +if [ -z "$FORCE_FLAG" ]; then if [ -z ${CONDA_DEFAULT_ENV+x} ]; then error "ERROR: No conda environment detected. Did you activate the conda environment (e.x. 'conda activate base')?" exit 1 fi fi -$DIR/scripts/init-submodules-no-riscv-tools.sh $BATCH_FLAG +$RDIR/scripts/init-submodules-no-riscv-tools.sh $FORCE_FLAG if [ "$SKIP_TOOLCHAIN" = false ]; then - $DIR/scripts/build-toolchain-extra.sh $BATCH_FLAG $TOOLCHAIN + $RDIR/scripts/build-toolchain-extra.sh $FORCE_FLAG $TOOLCHAIN fi -$DIR/scripts/gen-tags.sh +$RDIR/scripts/gen-tags.sh cat << EOT >> env.sh # line auto-generated by $0 -conda activate $DIR/.conda-env +conda activate $RDIR/.conda-env EOT diff --git a/scripts/build-toolchain-extra.sh b/scripts/build-toolchain-extra.sh index 3d7a25e0..c8be3d97 100755 --- a/scripts/build-toolchain-extra.sh +++ b/scripts/build-toolchain-extra.sh @@ -26,7 +26,8 @@ usage() { echo " --prefix PREFIX : Install destination. If unset, defaults to $CONDA_PREFIX/riscv-tools" echo " or $CONDA_PREFIX/esp-tools" echo " --clean-after-install : Run make clean in calls to module_make and module_build" - echo " --batch : Skip prompt checking for conda" + echo " --force -f : Skip prompt checking for conda" + echo " --skip-validate : DEPRECATED: Same functionality as --force" echo " --help -h : Display this message" exit "$1" } @@ -34,7 +35,7 @@ usage() { TOOLCHAIN="riscv-tools" CLEANAFTERINSTALL="" RISCV="" -BATCH=false +FORCE=false # getopts does not support long options, and is inflexible while [ "$1" != "" ]; @@ -49,8 +50,8 @@ do CLEANAFTERINSTALL="true" ;; riscv-tools | esp-tools) TOOLCHAIN=$1 ;; - --batch) - BATCH=true; + --force | -f | --skip-validate) + FORCE=true; ;; * ) error "invalid option $1" @@ -59,7 +60,7 @@ do shift done -if [ "$BATCH" = false ]; then +if [ "$FORCE" = false ]; then if [ -z ${CONDA_DEFAULT_ENV+x} ]; then error "ERROR: No conda environment detected. Did you activate the conda environment (e.x. 'conda activate chipyard')?" exit 1 diff --git a/scripts/init-fpga.sh b/scripts/init-fpga.sh index a0ab8ef6..0182bd4b 100755 --- a/scripts/init-fpga.sh +++ b/scripts/init-fpga.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash + # exit script if any command fails set -e set -o pipefail diff --git a/scripts/init-software.sh b/scripts/init-software.sh index 8a8a95a2..f0ca3f7d 100755 --- a/scripts/init-software.sh +++ b/scripts/init-software.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash + # exit script if any command fails set -e set -o pipefail diff --git a/scripts/init-submodules-no-riscv-tools-nolog.sh b/scripts/init-submodules-no-riscv-tools-nolog.sh index a18ad429..07a5f5fc 100755 --- a/scripts/init-submodules-no-riscv-tools-nolog.sh +++ b/scripts/init-submodules-no-riscv-tools-nolog.sh @@ -13,18 +13,19 @@ common_setup function usage { - echo "Usage: $0 [--batch]" + echo "Usage: $0 [--force]" echo "Initialize Chipyard submodules and setup initial env.sh script." echo "" - echo " --batch Skip prompt checking for tagged release" + echo " --force -f : Skip prompt checking for tagged release" + echo " --skip-validate : DEPRECATED: Same functionality as --force" } -BATCH=false +FORCE=false while test $# -gt 0 do case "$1" in - --batch) - BATCH=true; + --force | -f | --skip-validate) + FORCE=true; ;; -h | -H | --help | help) usage @@ -46,7 +47,7 @@ git_tag=$(git describe --exact-match --tags) git_tag_rc=$? restore_bash_options if [ "$git_tag_rc" -ne 0 ]; then - if [ "$BATCH" == false ]; then + if [ "$FORCE" == false ]; then while true; do read -p "WARNING: You are not on an official release of Chipyard."$'\n'"Type \"y\" to continue if this is intended or \"n\" if not: " validate case "$validate" in diff --git a/scripts/init-vlsi.sh b/scripts/init-vlsi.sh index 51184e58..8b9ed6b2 100755 --- a/scripts/init-vlsi.sh +++ b/scripts/init-vlsi.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash + # exit script if any command fails set -e set -o pipefail diff --git a/scripts/repo-clean.sh b/scripts/repo-clean.sh index 40234d4b..55a803b1 100644 --- a/scripts/repo-clean.sh +++ b/scripts/repo-clean.sh @@ -3,19 +3,9 @@ set -e # this should be run from chipyard repo top -TOPDIR=$(pwd) +RDIR=$(git rev-parse --show-toplevel) -cd generators/cva6/src/main/resources/vsrc -git submodule deinit cva6 - -cd $TOPDIR - -cd toolchains/qemu/roms/ -git submodule deinit edk2 -cd ../ -rm -rf build - -cd ../libgloss +cd $RDIR/libgloss rm -rf build.log cd ../riscv-tools/riscv-isa-sim/ @@ -27,6 +17,5 @@ rm -rf build.log cd ../riscv-tests rm -rf build.log -cd $TOPDIR -cd tools/api-config-chipsalliance +cd $RDIR/tools/api-config-chipsalliance git config --local status.showUntrackedFiles no diff --git a/scripts/tutorial-setup.sh b/scripts/tutorial-setup.sh index cfa73636..080043f5 100755 --- a/scripts/tutorial-setup.sh +++ b/scripts/tutorial-setup.sh @@ -1,6 +1,10 @@ #!/bin/bash -set -e -x +set -ex + +RDIR=$(git rev-parse --show-toplevel) + +cd $RDIR git rm generators/chipyard/src/main/scala/config/RocketSha3Configs.scala git rm -rf generators/sha3