[TCWG CI] Regression caused by linux: scripts/gcc-plugins: consistently use 
HOSTCC:
commit e554fdf7141e9edc05e7ece258f45b471af87494
Author: Ross Burton <ross.bur...@arm.com>

    scripts/gcc-plugins: consistently use HOSTCC

Results regressed to
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1:
-5
# build_abe qemu:
-2
# linux_n_obj:
21723
# First few build errors in logs:
# 00:02:07 drivers/char/ipmi/ipmi_msghandler.c:4880:1: error: the frame size of 
1232 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
# 00:02:07 make[2]: *** [drivers/char/ipmi/ipmi_msghandler.o] Error 1
# 00:02:43 make[1]: *** [drivers/char/ipmi] Error 2
# 00:03:47 lib/crypto/curve25519-fiat32.c:864:1: error: the frame size of 1288 
bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
# 00:03:47 make[2]: *** [lib/crypto/curve25519-fiat32.o] Error 1
# 00:03:54 make[1]: *** [lib/crypto] Error 2
# 00:03:54 fs/reiserfs/namei.c:1646:1: error: the frame size of 1176 bytes is 
larger than 1024 bytes [-Werror=frame-larger-than=]
# 00:03:54 make[2]: *** [fs/reiserfs/namei.o] Error 1
# 00:04:32 drivers/tty/serial/8250/8250_aspeed_vuart.c:568:1: error: the frame 
size of 1048 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
# 00:04:32 make[4]: *** [drivers/tty/serial/8250/8250_aspeed_vuart.o] Error 1

from
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1:
-5
# build_abe qemu:
-2
# linux_n_obj:
29916
# linux build successful:
all

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_kernel/gnu-release-arm-next-allmodconfig

First_bad build: 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmodconfig/21/artifact/artifacts/build-e554fdf7141e9edc05e7ece258f45b471af87494/
Last_good build: 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmodconfig/21/artifact/artifacts/build-86455276585996fe5b43972aa8f31afcbafabc40/
Baseline build: 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmodconfig/21/artifact/artifacts/build-baseline/
Even more details: 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmodconfig/21/artifact/artifacts/

Reproduce builds:
<cut>
mkdir investigate-linux-e554fdf7141e9edc05e7ece258f45b471af87494
cd investigate-linux-e554fdf7141e9edc05e7ece258f45b471af87494

# 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_kernel-gnu-bisect-gnu-release-arm-next-allmodconfig/21/artifact/artifacts/manifests/build-baseline.sh
 --fail
curl -o artifacts/manifests/build-parameters.sh 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmodconfig/21/artifact/artifacts/manifests/build-parameters.sh
 --fail
curl -o artifacts/test.sh 
https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-arm-next-allmodconfig/21/artifact/artifacts/test.sh
 --fail
chmod +x artifacts/test.sh

# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_kernel-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 /linux/ ./ ./bisect/baseline/

cd linux

# Reproduce first_bad build
git checkout --detach e554fdf7141e9edc05e7ece258f45b471af87494
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach 86455276585996fe5b43972aa8f31afcbafabc40
../artifacts/test.sh

cd ..
</cut>

Full commit (up to 1000 lines):
<cut>
commit e554fdf7141e9edc05e7ece258f45b471af87494
Author: Ross Burton <ross.bur...@arm.com>
Date:   Thu Sep 23 16:28:11 2021 +0100

    scripts/gcc-plugins: consistently use HOSTCC
    
    The GCC plugins are built using HOSTCC, but the path to the GCC plugins
    headers is obtained using CC.  This can lead to interesting failures if
    the host compiler and cross compiler are different versions, and the
    host compiler uses the cross headers.
    
    Signed-off-by: Ross Burton <ross.bur...@arm.com>
    Signed-off-by: Kees Cook <keesc...@chromium.org>
    Link: https://lore.kernel.org/r/20210923152811.406516-1-ross.bur...@arm.com
---
 scripts/gcc-plugins/Kconfig  | 2 +-
 scripts/gcc-plugins/Makefile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/gcc-plugins/Kconfig b/scripts/gcc-plugins/Kconfig
index ab9eb4cbe33a..5dad6d780138 100644
--- a/scripts/gcc-plugins/Kconfig
+++ b/scripts/gcc-plugins/Kconfig
@@ -9,7 +9,7 @@ menuconfig GCC_PLUGINS
        bool "GCC plugins"
        depends on HAVE_GCC_PLUGINS
        depends on CC_IS_GCC
-       depends on $(success,test -e $(shell,$(CC) 
-print-file-name=plugin)/include/plugin-version.h)
+       depends on $(success,test -e $(shell,$(HOSTCC) 
-print-file-name=plugin)/include/plugin-version.h)
        default y
        help
          GCC plugins are loadable modules that provide extra features to the
diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile
index 1952d3bb80c6..6aac404344a6 100644
--- a/scripts/gcc-plugins/Makefile
+++ b/scripts/gcc-plugins/Makefile
@@ -19,7 +19,7 @@ targets += randomize_layout_seed.h randomize_layout_hash.h
 
 always-y += $(GCC_PLUGIN)
 
-GCC_PLUGINS_DIR = $(shell $(CC) -print-file-name=plugin)
+GCC_PLUGINS_DIR = $(shell $(HOSTCXX) -print-file-name=plugin)
 
 plugin_cxxflags        = -Wp,-MMD,$(depfile) $(KBUILD_HOSTCXXFLAGS) -fPIC \
                  -include $(srctree)/include/linux/compiler-version.h \
</cut>
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to