Skip to content

Commit a010e15

Browse files
author
Github Executorch
committed
Something broke when trying to overload arm-none-eabi-gcc.cmake file, add example does not run anymore
1 parent ca7cd5e commit a010e15

File tree

2 files changed

+72
-63
lines changed

2 files changed

+72
-63
lines changed

backends/arm/scripts/build_executor_runner.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,27 @@ if [ "$build_with_etdump" = true ] ; then
135135
fi
136136

137137
echo "Building with BundleIO/etdump/extra flags: ${build_bundleio_flags} ${build_with_etdump_flags} ${extra_build_flags}"
138+
echo "toolchain_cmake set to ${toolchain_cmake}"
139+
echo "$(pwd)"
138140

141+
echo "
142+
cmake \
143+
-DCMAKE_BUILD_TYPE=${build_type} \
144+
-DCMAKE_TOOLCHAIN_FILE=${toolchain_cmake} \
145+
-DTARGET_CPU=${target_cpu} \
146+
-DET_DIR_PATH:PATH=${et_root_dir} \
147+
-DET_BUILD_DIR_PATH:PATH=${et_build_dir} \
148+
-DET_PTE_FILE_PATH:PATH="${pte_file}" \
149+
-DETHOS_SDK_PATH:PATH=${ethos_u_root_dir} \
150+
-DETHOSU_TARGET_NPU_CONFIG=${target} \
151+
${build_bundleio_flags} \
152+
${build_with_etdump_flags} \
153+
-DPYTHON_EXECUTABLE=$(which python3) \
154+
-DSYSTEM_CONFIG=${system_config} \
155+
-DMEMORY_MODE=${memory_mode} \
156+
${extra_build_flags} \
157+
-B ${output_folder}/cmake-out
158+
"
139159
cmake \
140160
-DCMAKE_BUILD_TYPE=${build_type} \
141161
-DCMAKE_TOOLCHAIN_FILE=${toolchain_cmake} \

examples/arm/setup.sh

Lines changed: 52 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,21 @@ et_dir=$(realpath $script_dir/../..)
1717
ARCH="$(uname -m)"
1818
OS="$(uname -s)"
1919
root_dir="${script_dir}/ethos-u-scratch"
20-
user_toolchain_url=""
21-
user_toolchain_dir=""
2220
eula_acceptance=0
2321
skip_toolchain_setup=0
22+
target_toolchain=""
2423
skip_fvp_setup=0
2524
skip_vela_setup=0
2625

2726

2827
# Figure out if setup.sh was called or sourced and save it into "is_script_sourced"
2928
(return 0 2>/dev/null) && is_script_sourced=1 || is_script_sourced=0
3029

30+
# Global scope these so they can be set later
31+
toolchain_url=""
32+
toolchain_dir=""
33+
toolchain_md5_checksum=""
34+
3135
if [[ "${ARCH}" == "x86_64" ]]; then
3236
# FVPs
3337
corstone300_url="https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/Corstone-300/FVP_Corstone_SSE-300_11.22_20_Linux64.tgz?rev=018659bd574f4e7b95fa647e7836ccf4&hash=22A79103C6FA5FFA7AFF3BE0447F3FF9"
@@ -37,11 +41,6 @@ if [[ "${ARCH}" == "x86_64" ]]; then
3741
corstone320_url="https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/Corstone-320/FVP_Corstone_SSE-320_11.27_25_Linux64.tgz?rev=a507bffc219a4d5792f1192ab7002d89&hash=D9A824AA8227D2E679C9B9787FF4E8B6FBE3D7C6"
3842
corstone320_model_dir="Linux64_GCC-9.3"
3943
corstone320_md5_checksum="3deb3c68f9b2d145833f15374203514d"
40-
41-
# toochain
42-
toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz"
43-
toolchain_dir="arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi"
44-
toolchain_md5_checksum="0601a9588bc5b9c99ad2b56133b7f118"
4544
elif [[ "${ARCH}" == "aarch64" ]] || [[ "${ARCH}" == "arm64" ]]; then
4645
# FVPs
4746
corstone300_url="https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/Corstone-300/FVP_Corstone_SSE-300_11.22_20_Linux64_armv8l.tgz?rev=9cc6e9a32bb947ca9b21fa162144cb01&hash=7657A4CF27D42E892E3F08D452AAB073"
@@ -51,17 +50,6 @@ elif [[ "${ARCH}" == "aarch64" ]] || [[ "${ARCH}" == "arm64" ]]; then
5150
corstone320_url="https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/Corstone-320/FVP_Corstone_SSE-320_11.27_25_Linux64_armv8l.tgz?rev=b6ebe0923cb84f739e017385fd3c333c&hash=8965C4B98E2FF7F792A099B08831FE3CB6120493"
5251
corstone320_model_dir="Linux64_armv8l_GCC-9.3"
5352
corstone320_md5_checksum="3889f1d80a6d9861ea4aa6f1c88dd0ae"
54-
55-
# toochain
56-
if [[ "${OS}" == "Darwin" ]]; then
57-
toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz"
58-
toolchain_dir="arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi"
59-
toolchain_md5_checksum="f1c18320bb3121fa89dca11399273f4e"
60-
elif [[ "${OS}" == "Linux" ]]; then
61-
toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz"
62-
toolchain_dir="arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi"
63-
toolchain_md5_checksum="303102d97b877ebbeb36b3158994b218"
64-
fi
6553
else
6654
echo "[main] Error: only x86-64 & aarch64/arm64 architecture is supported for now!"; exit 1;
6755
fi
@@ -75,7 +63,7 @@ vela_rev="8cac2b9a7204b57125a8718049519b091a98846c"
7563
########
7664

7765
function print_usage() {
78-
echo "Usage: $(basename $0) <--i-agree-to-the-contained-eula> [--root-dir path-to-a-scratch-dir] [--user-toolchain-url toolchain-url] [--user-toolchain-dir toolchain-dir] [--skip-fvp-setup] [--skip-toolchain-setup] [--skip-vela-setup]"
66+
echo "Usage: $(basename $0) <--i-agree-to-the-contained-eula> [--root-dir path-to-a-scratch-dir] [--target-toolchain toolchain name] [--skip-fvp-setup] [--skip-toolchain-setup] [--skip-vela-setup]"
7967
echo "Supplied args: $*"
8068
}
8169

@@ -99,21 +87,14 @@ function check_options() {
9987
exit 1
10088
fi
10189
;;
102-
--user-toolchain-url)
103-
if [[ $is_script_sourced -eq 0 ]]; then
104-
user_toolchain_url=${2:-"${user_toolchain_url}"}
105-
fi
106-
107-
if [[ $# -ge 2 ]]; then
108-
shift 2
109-
else
110-
print_usage "$@"
111-
exit 1
112-
fi
90+
--skip-toolchain-setup)
91+
skip_toolchain_setup=1
92+
shift
11393
;;
114-
--user-toolchain-dir)
94+
--target-toolchain)
95+
# Only change default root dir if the script is being executed and not sourced.
11596
if [[ $is_script_sourced -eq 0 ]]; then
116-
user_toolchain_dir=${2:-"${user_toolchain_dir}"}
97+
target_toolchain=${2:-"${target_toolchain}"}
11798
fi
11899

119100
if [[ $# -ge 2 ]]; then
@@ -123,10 +104,6 @@ function check_options() {
123104
exit 1
124105
fi
125106
;;
126-
--skip-toolchain-setup)
127-
skip_toolchain_setup=1
128-
shift
129-
;;
130107
--skip-fvp-setup)
131108
skip_fvp_setup=1
132109
shift
@@ -223,32 +200,46 @@ function setup_fvp() {
223200
done
224201
}
225202

203+
function select_toolchain() {
204+
if [[ "${ARCH}" == "x86_64" ]]; then
205+
if [[ "${target_toolchain}" == "zephyr" ]]; then
206+
# TODO can include support for zephyr toolchain for other host platforms later
207+
toolchain_url="https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.17.2/toolchain_linux-x86_64_arm-zephyr-eabi.tar.xz"
208+
toolchain_dir="arm-zephyr-eabi"
209+
toolchain_md5_checksum="93128be0235cf5cf5f1ee561aa6eac5f"
210+
else
211+
toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz"
212+
toolchain_dir="arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi"
213+
toolchain_md5_checksum="0601a9588bc5b9c99ad2b56133b7f118"
214+
echo "[main] Info using bare metal toolchain for default host OS ${OS} selection"
215+
fi
216+
elif [[ "${ARCH}" == "aarch64" ]] || [[ "${ARCH}" == "arm64" ]]; then
217+
if [[ "${OS}" == "Darwin" ]]; then
218+
toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz"
219+
toolchain_dir="arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi"
220+
toolchain_md5_checksum="f1c18320bb3121fa89dca11399273f4e"
221+
elif [[ "${OS}" == "Linux" ]]; then
222+
toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz"
223+
toolchain_dir="arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi"
224+
toolchain_md5_checksum="303102d97b877ebbeb36b3158994b218"
225+
fi
226+
else
227+
echo "[main] Error: only x86-64 & aarch64/arm64 architecture is supported for now!"; exit 1;
228+
fi
229+
}
226230
function setup_toolchain() {
227231
# Download and install the arm toolchain (default is arm-none-eabi)
232+
# setting --target-toolchain to zephyr sets this to arm-zephyr-eabi
228233
cd "${root_dir}"
229-
local selected_toolchain_url="${toolchain_url}"
230-
local selected_toolchain_dir="${toolchain_dir}"
231-
local selected_toolchain_md5="${toolchain_md5_checksum}"
232-
local skip_md5_verify=0
233-
if [[ -n "${user_toolchain_url}" ]]; then
234-
selected_toolchain_url="${user_toolchain_url}"
235-
selected_toolchain_dir="${user_toolchain_dir}"
236-
selected_toolchain_md5=""
237-
# TODO: For now we skip this if its a user specified url
238-
# but eventually we should verify the checksums
239-
skip_md5_verify=1
240-
fi
241-
if [[ ! -e "${selected_toolchain_dir}.tar.xz" ]]; then
242-
echo "[${FUNCNAME[0]}] Downloading toolchain ..."
243-
curl --output "${selected_toolchain_dir}.tar.xz" -L "${selected_toolchain_url}"
244-
if [[ ${skip_md5_verify} -eq 0 ]]; then
245-
verify_md5 ${selected_toolchain_md5} "${selected_toolchain_dir}.tar.xz" || exit 1
246-
fi
234+
if [[ ! -e "${toolchain_dir}.tar.xz" ]]; then
235+
echo "[${FUNCNAME[0]}] Downloading ${toolchain_dir} toolchain ..."
236+
curl --output "${toolchain_dir}.tar.xz" -L "${toolchain_url}"
237+
verify_md5 ${toolchain_md5_checksum} "${toolchain_dir}.tar.xz" || exit 1
247238
fi
248239

249240
echo "[${FUNCNAME[0]}] Installing toolchain ..."
250-
rm -rf "${selected_toolchain_dir}"
251-
tar xf "${selected_toolchain_dir}.tar.xz"
241+
rm -rf "${toolchain_dir}"
242+
tar xf "${toolchain_dir}.tar.xz"
252243
}
253244

254245
function setup_vela() {
@@ -277,12 +268,8 @@ function create_setup_path(){
277268
echo "hash FVP_Corstone_SSE-320" >> ${setup_path_script}
278269
fi
279270

280-
local selected_toolchain_dir="${toolchain_dir}"
281-
if [[ -n "${user_toolchain_url}" && -n "${user_toolchain_dir}" ]]; then
282-
selected_toolchain_dir="${user_toolchain_dir}"
283-
fi
284271
if [[ "${skip_toolchain_setup}" -eq 0 ]]; then
285-
toolchain_bin_path="$(cd ${selected_toolchain_dir}/bin && pwd)"
272+
toolchain_bin_path="$(cd ${toolchain_dir}/bin && pwd)"
286273
echo "export PATH=\${PATH}:${toolchain_bin_path}" >> ${setup_path_script}
287274
fi
288275
}
@@ -315,15 +302,17 @@ if [[ $is_script_sourced -eq 0 ]]; then
315302
setup_root_dir
316303
cd "${root_dir}"
317304
echo "[main] Using root dir ${root_dir} and options:"
318-
echo "user_toolchain_url=${user_toolchain_url}"
319-
echo "user_toolchain_dir=${user_toolchain_dir}"
320305
echo "skip-fvp-setup=${skip_fvp_setup}"
306+
echo "target-toolchain=${target_toolchain}"
321307
echo "skip-toolchain-setup=${skip_toolchain_setup}"
322308
echo "skip-vela-setup=${skip_vela_setup}"
323309

324310
# Import utils
325311
source $et_dir/backends/arm/scripts/utils.sh
326312

313+
# Select appropriate toolchain
314+
select_toolchain
315+
327316
# Setup toolchain
328317
if [[ "${skip_toolchain_setup}" -eq 0 ]]; then
329318
setup_toolchain

0 commit comments

Comments
 (0)