From a656c0babd66d9b08e441fb396e417e1febcf1f5 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Mon, 3 Jan 2022 21:17:08 +0200 Subject: [PATCH 1/3] xtensa-build-zephyr: add -v option for verbose build Align with xtensa-build-all.sh and add a "-v" option to toggle verbose build log ("west -v build"). Signed-off-by: Kai Vehmanen (cherry picked from commit b95d995bd2fb1f4f2b13575f11e5a42e18ad110e) --- scripts/xtensa-build-zephyr.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scripts/xtensa-build-zephyr.sh b/scripts/xtensa-build-zephyr.sh index 52165b7e9230..7e98291850cb 100755 --- a/scripts/xtensa-build-zephyr.sh +++ b/scripts/xtensa-build-zephyr.sh @@ -74,6 +74,8 @@ usage: $0 [options] [ platform(s) ] [ -- cmake arguments ] sof/ and zephyr-project/ directories are not nested in one another. + -v Verbose Makefile log + This script supports XtensaTools but only when installed in a specific directory structure, example: @@ -244,6 +246,9 @@ build_platforms() # show a confusing error. /bin/pwd + local verbose + [ -z "$BUILD_VERBOSE" ] || verbose=-v + if test -e "$bdir/build.ninja" || test -e "$bdir/Makefile"; then test -z "${CMAKE_ARGS+defined}" || die 'Cannot re-define CMAKE_ARGS, you must delete %s first\n' \ @@ -252,10 +257,10 @@ build_platforms() # CMAKE_ARGS this _not_ does force CMake to re-run and passing # a different board by mistake is very nicely caught by west. set -x - west build --build-dir "$bdir" --board "$PLAT_CONFIG" + west $verbose build --build-dir "$bdir" --board "$PLAT_CONFIG" else set -x - west build --build-dir "$bdir" --board "$PLAT_CONFIG" \ + west $verbose build --build-dir "$bdir" --board "$PLAT_CONFIG" \ zephyr/samples/subsys/audio/sof \ -- "${CMAKE_ARGS[@]}" fi @@ -301,7 +306,7 @@ parse_args() local OPTIND=1 # Parse -options - while getopts "acz:j:k:p:" OPTION; do + while getopts "acz:j:k:p:v" OPTION; do case "$OPTION" in a) PLATFORMS=("${DEFAULT_PLATFORMS[@]}") ;; c) DO_CLONE=yes ;; @@ -309,6 +314,7 @@ parse_args() j) BUILD_JOBS="$OPTARG" ;; k) RIMAGE_KEY_OPT="$OPTARG" ;; p) zeproj="$OPTARG" ;; + v) BUILD_VERBOSE=true ;; *) print_usage; exit 1 ;; esac done From e55ba606296c87ba97e8ddd4737d2a8a69d3d908 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Fri, 11 Mar 2022 22:49:17 -0800 Subject: [PATCH 2/3] xtensa-build-zephyr.sh: add new -u zephyr_remote option Same -u option as the new Python script. We need this for the new sof/stable-v2.1 branch on https://github.com/thesofproject/zephyr while our CI has not entirely switched to the python script yet. Signed-off-by: Marc Herbert (cherry picked from commit 177e18f701ef625fd780bfeb9d88b59fb44b3157) --- scripts/xtensa-build-zephyr.sh | 38 ++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/scripts/xtensa-build-zephyr.sh b/scripts/xtensa-build-zephyr.sh index 7e98291850cb..9ebb29cc2a57 100755 --- a/scripts/xtensa-build-zephyr.sh +++ b/scripts/xtensa-build-zephyr.sh @@ -59,6 +59,9 @@ usage: $0 [options] [ platform(s) ] [ -- cmake arguments ] Incompatible with -p. To stop after downloading Zephyr, do not pass any platform or cmake argument. + -u Initial Zephyr remote for the -c option. Default value: + https://github.com/zephyrproject-rtos/zephyr + -z Initial Zephyr git ref for the -c option. Can be a branch, tag, full SHA1 in a fork, magic pull/12345/merge,... anything as long as it is fetchable from https://github.com/zephyrproject-rtos/zephyr/ @@ -113,18 +116,26 @@ zephyr_fetch_and_switch() # link back to sof/ west_init_update() { - local init_ref="$1" - - # Or, we could have a default value: - # init_ref=${1:-811a09bd8305} - - git clone --depth=5 https://github.com/zephyrproject-rtos/zephyr \ - "$WEST_TOP"/zephyr + # Default Zephyr remote and branch if nothing passed on the + # command line. + local init_remote="${1:-https://github.com/zephyrproject-rtos/zephyr}" + + # This can be a branch, a 40-digit SHA or empty to fetch the + # default branch. Example: + # local init_ref=${2:-sof/stable-v2.1} + local init_ref="$2" + + # git fetch accepts anything, even 40-digits SHA but git clone is + # less flexible. So we git clone the default branch first to get + # started and then we switch to any 'z_ref' thanks to git fetch. + ( set -x + git clone --depth=5 "$init_remote" "$WEST_TOP"/zephyr + ) # To keep things simple, this moves to a detached HEAD even when # init_ref is a (remote) branch. test -z "$init_ref" || - zephyr_fetch_and_switch origin "${init_ref}" + zephyr_fetch_and_switch "${init_remote}" "${init_ref}" # This shows how to point CI at any Zephyr commit from anywhere # and to run all tests on it. Simply edit remote and reference, @@ -302,14 +313,15 @@ build_platforms() parse_args() { local zeproj - unset zephyr_ref + unset zephyr_remote zephyr_ref local OPTIND=1 # Parse -options - while getopts "acz:j:k:p:v" OPTION; do + while getopts "acu:z:j:k:p:v" OPTION; do case "$OPTION" in a) PLATFORMS=("${DEFAULT_PLATFORMS[@]}") ;; c) DO_CLONE=yes ;; + u) zephyr_remote="$OPTARG" ;; z) zephyr_ref="$OPTARG" ;; j) BUILD_JOBS="$OPTARG" ;; k) RIMAGE_KEY_OPT="$OPTARG" ;; @@ -328,8 +340,8 @@ parse_args() die 'Cannot use -p with -c, -c supports %s only' "${SOF_TOP}/zephyrproject" fi - if [ -n "$zephyr_ref" ] && [ -z "$DO_CLONE" ]; then - die '%s' '-z without -c makes no sense' + if [ -n "$zephyr_remote" -o -n "$zephyr_ref" ] && [ -z "$DO_CLONE" ]; then + die '%s' '-u or -z without -c makes no sense' fi if [ -n "$zeproj" ]; then @@ -407,7 +419,7 @@ see https://docs.zephyrproject.org/latest/getting_started/index.html" # Resolve symlinks mkdir "$zep"; WEST_TOP=$( cd "$zep" && /bin/pwd ) - west_init_update "${zephyr_ref}" + west_init_update "${zephyr_remote}" "${zephyr_ref}" else # Look for Zephyr and define WEST_TOP From 42a3c3df0b17240ffb9c49766d05f134cf587e30 Mon Sep 17 00:00:00 2001 From: Marc Herbert Date: Fri, 8 Apr 2022 14:33:32 -0700 Subject: [PATCH 3/3] xtensa-build: set default value instead of hardcoding Zephyr commit This reverts commit b678a4dcaa1e7ad0c6a056e17dd38bfe095a4464 because it's hardcoding the zephyr version real hard. Instead, merely change the default value. Signed-off-by: Marc Herbert --- scripts/xtensa-build-zephyr.sh | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/scripts/xtensa-build-zephyr.sh b/scripts/xtensa-build-zephyr.sh index 9ebb29cc2a57..d109f274b470 100755 --- a/scripts/xtensa-build-zephyr.sh +++ b/scripts/xtensa-build-zephyr.sh @@ -121,9 +121,8 @@ west_init_update() local init_remote="${1:-https://github.com/zephyrproject-rtos/zephyr}" # This can be a branch, a 40-digit SHA or empty to fetch the - # default branch. Example: - # local init_ref=${2:-sof/stable-v2.1} - local init_ref="$2" + # default branch + local init_ref="${2:-fd089b361d8aebbcb49cca989444aaeb0b6fbb4d}" # git fetch accepts anything, even 40-digits SHA but git clone is # less flexible. So we git clone the default branch first to get @@ -147,9 +146,6 @@ west_init_update() # zephyr_fetch_and_switch origin pull/38374/head # zephyr_fetch_and_switch origin 19d5448ec117fde8076bec4d0e61da53147f3315 - # SOF2.0 release uses this commit, verified in 2021-12-03 daily test - zephyr_fetch_and_switch origin fd089b361d8aebbcb49cca989444aaeb0b6fbb4d - # SECURITY WARNING for reviewers: never allow unknown code from # unknown submitters on any CI system.