[TCWG CI] Regression caused by gcc: Preserve cpu specific CRTSTUFF_T_CFLAGS on powerpc-vxworks7

Maxim Kuvyrkov maxim.kuvyrkov@linaro.org
Tue Dec 21 14:38:22 GMT 2021


Hi Olivier,

This was sent out due to a bug in our CI.  Sorry for the noise.

Regards,

--
Maxim Kuvyrkov
https://www.linaro.org

> On 17 Dec 2021, at 23:00, ci_notify@linaro.org wrote:
> 
> [TCWG CI] Regression caused by gcc: Preserve cpu specific CRTSTUFF_T_CFLAGS on powerpc-vxworks7:
> commit 0ecb48d753005405f84876ed3032c4cda789e072
> Author: Olivier Hainque <hainque@adacore.com>
> 
>    Preserve cpu specific CRTSTUFF_T_CFLAGS on powerpc-vxworks7
> 
> Results regressed to
> # reset_artifacts:
> -10
> # build_abe binutils:
> -9
> # build_abe stage1 -- --set gcc_override_configure=--disable-libsanitizer --set gcc_override_configure=--disable-multilib --set gcc_override_configure=--with-cpu=cortex-m4 --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--with-float=hard:
> -8
> # build_abe newlib:
> -6
> # build_abe stage2 -- --set gcc_override_configure=--disable-libsanitizer --set gcc_override_configure=--disable-multilib --set gcc_override_configure=--with-cpu=cortex-m4 --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--with-float=hard:
> -5
> # benchmark -- -Os_LTO_mthumb artifacts/build-0ecb48d753005405f84876ed3032c4cda789e072/results_id:
> 1
> 
> from
> # reset_artifacts:
> -10
> # build_abe binutils:
> -9
> # build_abe stage1 -- --set gcc_override_configure=--disable-libsanitizer --set gcc_override_configure=--disable-multilib --set gcc_override_configure=--with-cpu=cortex-m4 --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--with-float=hard:
> -8
> # build_abe newlib:
> -6
> # build_abe stage2 -- --set gcc_override_configure=--disable-libsanitizer --set gcc_override_configure=--disable-multilib --set gcc_override_configure=--with-cpu=cortex-m4 --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--with-float=hard:
> -5
> # benchmark -- -Os_LTO_mthumb artifacts/build-baseline/results_id:
> 1
> 
> THIS IS THE END OF INTERESTING STUFF.  BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.
> 
> This commit has regressed these CI configurations:
> - tcwg_bmk_gnu_eabi_stm32/gnu_eabi-master-arm_eabi-coremark-Os_LTO
> 
> First_bad build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/12/artifact/artifacts/build-0ecb48d753005405f84876ed3032c4cda789e072/
> Last_good build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/12/artifact/artifacts/build-16c848090f237c2398930b8c0ef75acebf4fa44d/
> Baseline build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/12/artifact/artifacts/build-baseline/
> Even more details: https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/12/artifact/artifacts/
> 
> Reproduce builds:
> <cut>
> mkdir investigate-gcc-0ecb48d753005405f84876ed3032c4cda789e072
> cd investigate-gcc-0ecb48d753005405f84876ed3032c4cda789e072
> 
> # Fetch scripts
> git clone https://git.linaro.org/toolchain/jenkins-scripts
> 
> # Fetch manifests and test.sh script
> mkdir -p artifacts/manifests
> curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/12/artifact/artifacts/manifests/build-baseline.sh --fail
> curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/12/artifact/artifacts/manifests/build-parameters.sh --fail
> curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/12/artifact/artifacts/test.sh --fail
> chmod +x artifacts/test.sh
> 
> # Reproduce the baseline build (build all pre-requisites)
> ./jenkins-scripts/tcwg_bmk-build.sh @@ artifacts/manifests/build-baseline.sh
> 
> # Save baseline build state (which is then restored in artifacts/test.sh)
> mkdir -p ./bisect
> rsync -a --del --delete-excluded --exclude /bisect/ --exclude /artifacts/ --exclude /gcc/ ./ ./bisect/baseline/
> 
> cd gcc
> 
> # Reproduce first_bad build
> git checkout --detach 0ecb48d753005405f84876ed3032c4cda789e072
> ../artifacts/test.sh
> 
> # Reproduce last_good build
> git checkout --detach 16c848090f237c2398930b8c0ef75acebf4fa44d
> ../artifacts/test.sh
> 
> cd ..
> </cut>
> 
> Full commit (up to 1000 lines):
> <cut>
> commit 0ecb48d753005405f84876ed3032c4cda789e072
> Author: Olivier Hainque <hainque@adacore.com>
> Date:   Tue Dec 7 13:26:30 2021 +0000
> 
>    Preserve cpu specific CRTSTUFF_T_CFLAGS on powerpc-vxworks7
> 
>    The unconditional assignment performed in t-vxworks to handle
>    include flags currently overrides what specific cpu ports had
>    for the regular (!vxworks) crtstuff objects.
> 
>    This was not done on purpose and the proposed change adjusts the
>    configuration bits to apply the vxworks specific flags on top of
>    the cpu ones instead.
> 
>    2021-12-07  Olivier Hainque  <hainque@adacore.com>
> 
>            * config.host (powerpc*-wrs-vxworks7*): Place t-crtstuff
>            ahead of the other files in tmake_files.
>            * config/t-vxworks: Add to CRTSTUFF_T_CFLAGS instead of
>            overriding it.
> ---
> libgcc/config.host      | 3 ++-
> libgcc/config/t-vxworks | 4 +++-
> 2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/libgcc/config.host b/libgcc/config.host
> index 1c1b60cac0b..a94f4bf41db 100644
> --- a/libgcc/config.host
> +++ b/libgcc/config.host
> @@ -1235,7 +1235,8 @@ powerpc*-*-linux*)
> 	md_unwind_header=rs6000/linux-unwind.h
> 	;;
> powerpc*-wrs-vxworks7*)
> -        tmake_file="$tmake_file rs6000/t-vxworks rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-linux t-dfprules rs6000/t-ppc64-fp t-slibgcc-libgcc"
> +        tmake_file="$tmake_file rs6000/t-vxworks rs6000/t-savresfgpr rs6000/t-linux t-dfprules rs6000/t-ppc64-fp t-slibgcc-libgcc"
> +        tmake_file="rs6000/t-crtstuff ${tmake_file}"
>         case $ppc_fp_type in
>         64)
>                 ;;
> diff --git a/libgcc/config/t-vxworks b/libgcc/config/t-vxworks
> index aa794744976..18a0b1ee469 100644
> --- a/libgcc/config/t-vxworks
> +++ b/libgcc/config/t-vxworks
> @@ -17,4 +17,6 @@ LIBGCC2_INCLUDES = -nostdinc -I. \
>     -I$(VSB_DIR)/h -I$(VSB_DIR)/share/h -I=/system -I=/public, \
>     -I=/ -I=/wrn/coreip)
> 
> -CRTSTUFF_T_CFLAGS = $(LIBGCC2_INCLUDES)
> +# Use these also for the vxcrstuff objects (.e.g for version.h), on top of
> +# the options possibly already set specifically for the target:
> +CRTSTUFF_T_CFLAGS += $(LIBGCC2_INCLUDES)
> </cut>



More information about the Gcc-regression mailing list