diff options
-rw-r--r-- | jenkins-helpers.sh | 2 | ||||
-rw-r--r-- | round-robin.sh | 2 | ||||
-rwxr-xr-x | tcwg_gnu-build.sh | 47 |
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 |