summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtcwg_bmk-build.sh31
1 files changed, 19 insertions, 12 deletions
diff --git a/tcwg_bmk-build.sh b/tcwg_bmk-build.sh
index 7129c529..0ff919d5 100755
--- a/tcwg_bmk-build.sh
+++ b/tcwg_bmk-build.sh
@@ -58,28 +58,35 @@ if ! test_array cflags; then
done
fi
-gcc_override_configure=()
-# Set default ARM/Thumb mode for AArch32 compiler. This ensures that libraries
-# (Glibc, libgcc, libstdc++, libgfortran, etc.) are built in the "interesting"
-# ISA.
+gcc_mode=""
for i in $(seq 0 $(("${#cflags[@]}" - 1))); do
+ cflags_mode=""
case "${rr[target]}:${cflags[$i]}" in
- "arm:"*"mthumb"*)
- gcc_override_configure+=("--set" "gcc_override_configure=--with-mode=thumb")
- ;;
- "arm:"*"marm"*)
- gcc_override_configure+=("--set" "gcc_override_configure=--with-mode=arm")
- ;;
+ "arm:"*"mthumb"*) cflags_mode=thumb ;;
+ "arm:"*"marm"*) cflags_mode=arm ;;
"arm:-Os"*|"arm:-Oz"*)
- gcc_override_configure+=("--set" "gcc_override_configure=--with-mode=thumb")
+ cflags_mode=thumb
cflags[$i]="${cflags[$i]}_mthumb"
;;
"arm:"*)
- gcc_override_configure+=("--set" "gcc_override_configure=--with-mode=arm")
+ cflags_mode=arm
cflags[$i]="${cflags[$i]}_marm"
;;
esac
+ if [ x"$gcc_mode" = x"" ]; then
+ gcc_mode="$cflags_mode"
+ elif [ x"$gcc_mode" != x"$cflags_mode" ]; then
+ assert_with_msg "Unsupported arm/thumb configuration ${cflags[$(($i - 1))]} and ${cflags[$i]}" false
+ fi
done
+
+gcc_override_configure=()
+# Set default ARM/Thumb mode for AArch32 compiler. This ensures that libraries
+# (Glibc, libgcc, libstdc++, libgfortran, etc.) are built in the "interesting"
+# ISA.
+case "$gcc_mode" in
+ arm|thumb) gcc_override_configure+=("--set" "gcc_override_configure=--with-mode=$gcc_mode") ;;
+esac
# Disable libsanitizer because it didn't build in April-June 2018.
# We need to test revisions during that time period for performance regressions.
gcc_override_configure+=("--set" "gcc_override_configure=--disable-libsanitizer")