summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jenkins-helpers.sh2
-rw-r--r--round-robin.sh2
-rwxr-xr-xtcwg_gnu-build.sh47
3 files changed, 44 insertions, 7 deletions
diff --git a/jenkins-helpers.sh b/jenkins-helpers.sh
index 5e9d63bd..9936b9f7 100644
--- a/jenkins-helpers.sh
+++ b/jenkins-helpers.sh
@@ -1451,7 +1451,7 @@ print_gnu_target ()
case "$target" in
"aarch64") target="aarch64-linux-gnu" ;;
- "arm_eabi") target="arm-eabi" ;;
+ arm*_eabi) target="arm-eabi" ;;
"arm"*) target="arm-linux-gnueabihf" ;;
"woa64") target="aarch64-w64-mingw32" ;;
"x86_64") target="x86_64-linux-gnu" ;;
diff --git a/round-robin.sh b/round-robin.sh
index 52681813..a52fca79 100644
--- a/round-robin.sh
+++ b/round-robin.sh
@@ -501,7 +501,7 @@ build_abe ()
# Don't build Go, which has a funky and unstable testsuite.
# Stage1 ignores "--set languages=" option, so this applies only
# to stage2 builds.
- # Do no build fortran for bare-metal configurations
+ # Do not build fortran for bare-metal configurations
case "${rr[ci_project]}" in
*embed*)
stage="$stage --set languages=c,c++,lto"
diff --git a/tcwg_gnu-build.sh b/tcwg_gnu-build.sh
index 06abd8f4..1fe44873 100755
--- a/tcwg_gnu-build.sh
+++ b/tcwg_gnu-build.sh
@@ -308,13 +308,44 @@ tcwg_gnu_breakup_changed_components ()
}
rr[breakup_changed_components]=tcwg_gnu_breakup_changed_components
+gcc_override_configure=()
+gcc_target_board_options=()
+qemu_cpu=()
+
+# Build the right libs depending on the target. Hardcode the
+# arch/cpu/float-abi/mode to speed up toolchain builds: the
+# alternative of building rmprofile multilibs takes a very long
+# time. Setting the values here has the drawback that we have to build
+# one toolchain per target_board type.
+# Also force the corresponding options via target_board_options. This
+# mimics how several vendors test the toolchain.
+case "${rr[ci_project]}" in
+ tcwg_gnu_embed*)
+ case "${rr[target]}" in
+ "arm_v7a_softfp_eabi")
+ gcc_override_configure+=(
+ "--set" "gcc_override_configure=--disable-multilib"
+ "--set" "gcc_override_configure=--with-arch=armv7-a"
+ "--set" "gcc_override_configure=--with-fpu=vfpv3-d16"
+ "--set" "gcc_override_configure=--with-mode=arm"
+ "--set" "gcc_override_configure=--with-float=softfp"
+ )
+ gcc_target_board_options+=(
+ "--set target_board_options={-marm/-march=armv7-a/-mfpu=vfpv3-d16/-mfloat-abi=softfp}"
+ )
+ qemu_cpu+=(--qemu-cpu cortex-a9)
+ ;;
+ esac
+esac
+
run_step stop_on_fail -10 reset_artifacts
run_step stop_on_fail x prepare_abe
case "${rr[ci_project]}" in
tcwg_gnu_cross_build|tcwg_gnu_embed_build)
run_step skip_on_fail 0 true
run_step skip_on_fail 1 build_abe binutils
- run_step skip_on_fail 2 build_abe stage1
+ run_step skip_on_fail 2 build_abe stage1 -- \
+ "${gcc_override_configure[@]}"
run_step skip_on_fail x clean_sysroot
case "${rr[components]}" in
*glibc*)
@@ -325,13 +356,15 @@ case "${rr[ci_project]}" in
run_step skip_on_fail 4 build_abe newlib
;;
esac
- run_step skip_on_fail 5 build_abe stage2
+ run_step skip_on_fail 5 build_abe stage2 -- \
+ "${gcc_override_configure[@]}"
run_step skip_on_fail 6 build_abe gdb
run_step skip_on_fail 7 build_abe qemu
;;
tcwg_gnu_cross_check_*|tcwg_gnu_embed_check_*)
run_step skip_on_fail -8 build_abe binutils
- run_step skip_on_fail -7 build_abe stage1
+ run_step skip_on_fail -7 build_abe stage1 -- \
+ "${gcc_override_configure[@]}"
run_step skip_on_fail x clean_sysroot
case "${rr[components]}" in
*glibc*)
@@ -342,11 +375,15 @@ case "${rr[ci_project]}" in
run_step skip_on_fail -5 build_abe newlib
;;
esac
- run_step skip_on_fail -4 build_abe stage2
+ run_step skip_on_fail -4 build_abe stage2 -- \
+ "${gcc_override_configure[@]}"
run_step skip_on_fail -3 build_abe gdb
run_step skip_on_fail -2 build_abe qemu
run_step skip_on_fail -1 build_abe dejagnu
- run_step skip_on_fail 0 build_abe "check_${rr[ci_project]#*check_}" -- "${runtestflags[@]}"
+ run_step skip_on_fail 0 build_abe "check_${rr[ci_project]#*check_}" -- "${runtestflags[@]}" \
+ "${gcc_override_configure[@]}" \
+ "${gcc_target_board_options[@]}" \
+ "${qemu_cpu[@]}"
;;
tcwg_gnu_native_build)
run_step skip_on_fail 0 true