Re: [PATCH] scripts/gcc-plugins: consistently use HOSTCC

From: Kees Cook
Date: Mon Sep 27 2021 - 12:12:12 EST


On Mon, Sep 27, 2021 at 03:25:19PM +0000, Ross Burton wrote:
> Hm, yes, I think I managed to misunderstand something and fixed one build whilst breaking another.
>
> Kees, can you drop this? I’ll come back with a v2.

Sure! Dropped from -next.

-Kees

>
> Ross
>
> From: Dmitry Osipenko <digetx@xxxxxxxxx>
> Date: Monday, 27 September 2021 at 16:10
> To: Kees Cook <keescook@xxxxxxxxxxxx>, Ross Burton <Ross.Burton@xxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx <linux-kernel@xxxxxxxxxxxxxxx>, linux-hardening@xxxxxxxxxxxxxxx <linux-hardening@xxxxxxxxxxxxxxx>
> Subject: Re: [PATCH] scripts/gcc-plugins: consistently use HOSTCC
> 24.09.2021 00:28, Kees Cook пишет:
> > On Thu, 23 Sep 2021 16:28:11 +0100, Ross Burton wrote:
> >> 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.
> >
> > (I changed this from HOSTCC to HOSTCXX to match the other invocations.)
> >
> > Applied to for-next/gcc-plugins, thanks!
> >
> > [1/1] scripts/gcc-plugins: consistently use HOSTCC
> > https://git.kernel.org/kees/c/ef5ecb129791
> >
>
> I'm getting these errors when compiling ARM32 kernel using today's -next:
>
> cc1: error: incompatible gcc/plugin versions
> cc1: error: failed to initialize plugin ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so
>
> Both host and cross compiler are the same version:
>
> # gcc-config -l
> [1] armv7a-hardfloat-linux-gnueabi-9.3.0
> [2] armv7a-hardfloat-linux-gnueabi-10.3.0
> [3] armv7a-hardfloat-linux-gnueabi-11.1.0 *
>
> [4] x86_64-pc-linux-gnu-11.1.0 *
>
> # gcc -v
> Используются внутренние спецификации.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/11.1.0/lto-wrapper
> Целевая архитектура: x86_64-pc-linux-gnu
> Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-11.1.0-r2/work/gcc-11.1.0/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/11.1.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/11.1.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/11.1.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/11.1.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/g++-v11 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/11.1.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 11.1.0-r2 p3' --disable-esp --enable-libstdcxx-time --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libssp --disable-libada --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --without-zstd --enable-lto --with-isl --disable-isl-version-check --enable-default-pie --enable-default-ssp
> Модель многопоточности: posix
> Supported LTO compression algorithms: zlib
> gcc версия 11.1.0 (Gentoo 11.1.0-r2 p3)
>
> # armv7a-hardfloat-linux-gnueabi-gcc -v
> Используются внутренние спецификации.
> COLLECT_GCC=armv7a-hardfloat-linux-gnueabi-gcc
> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/armv7a-hardfloat-linux-gnueabi/11.1.0/lto-wrapper
> Целевая архитектура: armv7a-hardfloat-linux-gnueabi
> Параметры конфигурации: /var/tmp/portage/cross-armv7a-hardfloat-linux-gnueabi/gcc-11.1.0-r2/work/gcc-11.1.0/configure --host=x86_64-pc-linux-gnu --target=armv7a-hardfloat-linux-gnueabi --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/armv7a-hardfloat-linux-gnueabi/gcc-bin/11.1.0 --includedir=/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/11.1.0/include --datadir=/usr/share/gcc-data/armv7a-hardfloat-linux-gnueabi/11.1.0 --mandir=/usr/share/gcc-data/armv7a-hardfloat-linux-gnueabi/11.1.0/man --infodir=/usr/share/gcc-data/armv7a-hardfloat-linux-gnueabi/11.1.0/info --with-gxx-include-dir=/usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/11.1.0/include/g++-v11 --with-python-dir=/share/gcc-data/armv7a-hardfloat-linux-gnueabi/11.1.0/python --enable-languages=c,c++ --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 11.1.0-r2 p3' --disable-esp --enable-libstdcxx-time --enable-poison-system-directories --with-sysroot=/usr/armv7a-hardfloat-linux-gnueabi --disable-bootstrap --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-fixed-point --with-float=hard --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --enable-libgomp --disable-libssp --disable-libada --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --without-zstd --enable-lto --with-isl --disable-isl-version-check --enable-default-pie --enable-default-ssp
> Модель многопоточности: posix
> Supported LTO compression algorithms: zlib
> gcc версия 11.1.0 (Gentoo 11.1.0-r2 p3)
>
>
> Please fix, thanks in advance.
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

--
Kees Cook