@@ -11,6 +11,22 @@ source $RDIR/scripts/utils.sh
1111
1212common_setup
1313
14+ # Custom error handler function
15+ error_handler () {
16+ local exit_code=$?
17+ local line_number=$1
18+ local submodule_name=$2
19+ echo " Error occurred at line $line_number with exit code $exit_code in \` init-submodules-no-riscv-tools-nolog.sh\` ."
20+ if [ -n " $submodule_name " ]; then
21+ echo " Submodule $submodule_name failed to update."
22+ fi
23+ echo " Exiting script."
24+ exit $exit_code
25+ }
26+
27+ # Set the trap for catching errors - call the error_handler and pass in the line number on any non-zero exit status
28+ trap ' error_handler $LINENO "$submodule_name"' ERR
29+
1430function usage
1531{
1632 echo " Usage: $0 "
@@ -99,57 +115,69 @@ cd "$RDIR"
99115 (
100116 set -x
101117 git_submodule_exclude _skip
102- git submodule update --init --recursive # --jobs 8
118+ git submodule update --init --recursive || exit 1 # Force exit on error #--jobs 8
103119 )
104120)
105121
106122(
107123 # Non-recursive clone to exclude cva6 submods
108- git submodule update --init generators/cva6
109- git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6
110- git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/axi
111- git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/axi_riscv_atomics
112- git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/common_cells
113- git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/fpga-support
114- git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/riscv-dbg
115- git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/register_interface
116- git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init --recursive src/fpu
124+ submodule_name=" generators/cva6"
125+ git submodule update --init generators/cva6 || exit 1
126+ git -C generators/cva6 submodule update --init src/main/resources/cva6/vsrc/cva6 || exit 1
127+ git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/axi || exit 1
128+ git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/axi_riscv_atomics || exit 1
129+ git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/common_cells || exit 1
130+ git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/fpga-support || exit 1
131+ git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/riscv-dbg || exit 1
132+ git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init src/register_interface || exit 1
133+ git -C generators/cva6/src/main/resources/cva6/vsrc/cva6 submodule update --init --recursive src/fpu || exit 1
134+
117135 # Non-recursive clone to exclude nvdla submods
118- git submodule update --init generators/nvdla
119- git -C generators/nvdla submodule update --init src/main/resources/hw
136+ submodule_name=" generators/nvdla"
137+ git submodule update --init generators/nvdla || exit 1
138+ git -C generators/nvdla submodule update --init src/main/resources/hw || exit 1
120139
121140 # Non-recursive clone to exclude ara submods
122- git submodule update --init generators/ara
123- git -C generators/ara submodule update --init ara
141+ submodule_name=" generators/ara"
142+ git submodule update --init generators/ara || exit 1
143+ git -C generators/ara submodule update --init ara || exit 1
124144
125145 # Non-recursive clone to exclude gemmini-software
126- git submodule update --init generators/gemmini
127- git -C generators/gemmini/ submodule update --init --recursive software/gemmini-rocc-tests
146+ submodule_name=" generators/gemmini"
147+ git submodule update --init generators/gemmini || exit 1
148+ git -C generators/gemmini/ submodule update --init --recursive software/gemmini-rocc-tests || exit 1
128149
129150 # Non-recursive clone
130- git submodule update --init generators/rocket-chip
151+ submodule_name=" generators/rocket-chip"
152+ git submodule update --init generators/rocket-chip || exit 1
131153
132154 # Non-recursive clone
133- git submodule update --init generators/compress-acc
155+ submodule_name=" generators/compress-acc"
156+ git submodule update --init generators/compress-acc || exit 1
134157
135158 # Non-recursive clone
136- git submodule update --init generators/vexiiriscv
137- git -C generators/vexiiriscv submodule update --init VexiiRiscv
138- git -C generators/vexiiriscv/VexiiRiscv submodule update --init ext/SpinalHDL
139- git -C generators/vexiiriscv/VexiiRiscv submodule update --init ext/rvls
159+ submodule_name=" generators/vexiiriscv"
160+ git submodule update --init generators/vexiiriscv || exit 1
161+ git -C generators/vexiiriscv submodule update --init VexiiRiscv || exit 1
162+ git -C generators/vexiiriscv/VexiiRiscv submodule update --init ext/SpinalHDL || exit 1
163+ git -C generators/vexiiriscv/VexiiRiscv submodule update --init ext/rvls || exit 1
140164
141165 # Minimal non-recursive clone to initialize sbt dependencies
142- git submodule update --init sims/firesim
166+ submodule_name=" sims/firesim"
167+ git submodule update --init sims/firesim || exit 1
143168 git config --local submodule.sims/firesim.update none
144169
145170 # Non-recursive clone
146- git submodule update --init tools/rocket-dsp-utils
171+ submodule_name=" tools/rocket-dsp-utils"
172+ git submodule update --init tools/rocket-dsp-utils || exit 1
147173
148174 # Non-recursive clone
149- git submodule update --init tools/dsptools
175+ submodule_name=" tools/dsptools"
176+ git submodule update --init tools/dsptools || exit 1
150177
151178 # Only shallow clone needed for basic SW tests
152- git submodule update --init software/firemarshal
179+ submodule_name=" software/firemarshal"
180+ git submodule update --init software/firemarshal || exit 1
153181)
154182
155183# Configure firemarshal to know where our firesim installation is
@@ -158,5 +186,5 @@ if [ ! -f ./software/firemarshal/marshal-config.yaml ]; then
158186fi
159187
160188replace_content env.sh init-submodules " # line auto-generated by init-submodules-no-riscv-tools.sh
161- __DIR=" $RDIR "
162- PATH=\$ __DIR/software/firemarshal:\$ PATH"
189+ __DIR=\ "$RDIR \ "
190+ PATH=\$ __DIR/software/firemarshal:\$ PATH"
0 commit comments