[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