From: Richard Biener <richard.guenther@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH 1/5] Makefile.in: Ensure build CPP/CPPFLAGS is used for build targets
Date: Thu, 28 Oct 2021 09:04:58 +0200 [thread overview]
Message-ID: <CAFiYyc2CyMS-pvBJyFinTovU1Se6_5_yiAcHo3b_C=5nU8g=Gw@mail.gmail.com> (raw)
In-Reply-To: <20211027200505.3340725-2-richard.purdie@linuxfoundation.org>
On Wed, Oct 27, 2021 at 10:10 PM Richard Purdie via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> During cross compiling, CPP is being set to the target compiler even for
> build targets. As an example, when building a cross compiler targetting
> mingw, the config.log for libiberty in
> build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log
> shows:
>
> configure:3786: checking how to run the C preprocessor
> configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=[sysroot]/x86_64-nativesdk-mingw32-pokysdk-mingw32
> configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=[sysroot]/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c
> configure:3876: $? = 0
>
> This is libiberty being built for the build environment, not the target one
> (i.e. in build-x86_64-linux). As such it should be using the build environment's
> gcc and not the target one. In the mingw case the system headers are quite
> different leading to build failures related to not being able to include a
> process.h file for pem-unix.c.
>
> Further analysis shows the same issue occuring for CPPFLAGS too.
>
> Fix this by adding support for CPP_FOR_BUILD and CPPFLAGS_FOR_BUILD which
> for example, avoids mixing the mingw headers for host binaries on linux
> systems.
OK.
Thanks,
Richard.
> 2021-10-27 Richard Purdie <richard.purdie@linuxfoundation.org>
>
> ChangeLog:
>
> * Makefile.tpl: Add CPP_FOR_BUILD and CPPFLAGS_FOR_BUILD support
> * Makefile.in: Regenerate.
> * configure: Regenerate.
> * configure.ac: Add CPP_FOR_BUILD and CPPFLAGS_FOR_BUILD support
>
> gcc/ChangeLog:
>
> * configure: Regenerate.
> * configure.ac: Use CPPFLAGS_FOR_BUILD for GMPINC
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> ---
> Makefile.in | 6 ++++++
> Makefile.tpl | 6 ++++++
> configure | 4 ++++
> configure.ac | 4 ++++
> gcc/configure | 2 +-
> gcc/configure.ac | 2 +-
> 6 files changed, 22 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile.in b/Makefile.in
> index 34b2d89660d..d13f6c353ee 100644
> --- a/Makefile.in
> +++ b/Makefile.in
> @@ -154,6 +154,8 @@ BUILD_EXPORTS = \
> CC="$(CC_FOR_BUILD)"; export CC; \
> CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
> CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
> + CPP="$(CPP_FOR_BUILD)"; export CPP; \
> + CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \
> CXX="$(CXX_FOR_BUILD)"; export CXX; \
> CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
> GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
> @@ -202,6 +204,8 @@ HOST_EXPORTS = \
> AR="$(AR)"; export AR; \
> AS="$(AS)"; export AS; \
> CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
> + CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
> + CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
> CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
> DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
> DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \
> @@ -360,6 +364,8 @@ AR_FOR_BUILD = @AR_FOR_BUILD@
> AS_FOR_BUILD = @AS_FOR_BUILD@
> CC_FOR_BUILD = @CC_FOR_BUILD@
> CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
> +CPP_FOR_BUILD = @CPP_FOR_BUILD@
> +CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
> CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
> CXX_FOR_BUILD = @CXX_FOR_BUILD@
> DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
> diff --git a/Makefile.tpl b/Makefile.tpl
> index 08e68e83ea8..213052f8226 100644
> --- a/Makefile.tpl
> +++ b/Makefile.tpl
> @@ -157,6 +157,8 @@ BUILD_EXPORTS = \
> CC="$(CC_FOR_BUILD)"; export CC; \
> CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
> CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
> + CPP="$(CPP_FOR_BUILD)"; export CPP; \
> + CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \
> CXX="$(CXX_FOR_BUILD)"; export CXX; \
> CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
> GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
> @@ -205,6 +207,8 @@ HOST_EXPORTS = \
> AR="$(AR)"; export AR; \
> AS="$(AS)"; export AS; \
> CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
> + CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
> + CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
> CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
> DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
> DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \
> @@ -363,6 +367,8 @@ AR_FOR_BUILD = @AR_FOR_BUILD@
> AS_FOR_BUILD = @AS_FOR_BUILD@
> CC_FOR_BUILD = @CC_FOR_BUILD@
> CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
> +CPP_FOR_BUILD = @CPP_FOR_BUILD@
> +CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
> CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
> CXX_FOR_BUILD = @CXX_FOR_BUILD@
> DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
> diff --git a/configure b/configure
> index 785498efff5..58979d6e3b1 100755
> --- a/configure
> +++ b/configure
> @@ -655,6 +655,8 @@ DSYMUTIL_FOR_BUILD
> DLLTOOL_FOR_BUILD
> CXX_FOR_BUILD
> CXXFLAGS_FOR_BUILD
> +CPPFLAGS_FOR_BUILD
> +CPP_FOR_BUILD
> CFLAGS_FOR_BUILD
> CC_FOR_BUILD
> AS_FOR_BUILD
> @@ -4090,6 +4092,7 @@ if test "${build}" != "${host}" ; then
> AR_FOR_BUILD=${AR_FOR_BUILD-ar}
> AS_FOR_BUILD=${AS_FOR_BUILD-as}
> CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
> + CPP_FOR_BUILD="${CPP_FOR_BUILD-\$(CPP)}"
> CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
> DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil}
> GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
> @@ -9999,6 +10002,7 @@ esac
> # our build compiler if desired.
> if test x"${build}" = x"${host}" ; then
> CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
> + CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}}
> CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
> LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
> fi
> diff --git a/configure.ac b/configure.ac
> index c523083c346..550e6993b59 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1334,6 +1334,7 @@ if test "${build}" != "${host}" ; then
> AR_FOR_BUILD=${AR_FOR_BUILD-ar}
> AS_FOR_BUILD=${AS_FOR_BUILD-as}
> CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
> + CPP_FOR_BUILD="${CPP_FOR_BUILD-\$(CPP)}"
> CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
> DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil}
> GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
> @@ -3323,6 +3324,7 @@ esac
> # our build compiler if desired.
> if test x"${build}" = x"${host}" ; then
> CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
> + CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}}
> CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
> LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
> fi
> @@ -3389,6 +3391,8 @@ AC_SUBST(AR_FOR_BUILD)
> AC_SUBST(AS_FOR_BUILD)
> AC_SUBST(CC_FOR_BUILD)
> AC_SUBST(CFLAGS_FOR_BUILD)
> +AC_SUBST(CPP_FOR_BUILD)
> +AC_SUBST(CPPFLAGS_FOR_BUILD)
> AC_SUBST(CXXFLAGS_FOR_BUILD)
> AC_SUBST(CXX_FOR_BUILD)
> AC_SUBST(DLLTOOL_FOR_BUILD)
> diff --git a/gcc/configure b/gcc/configure
> index eeb42657da2..920868bcd33 100755
> --- a/gcc/configure
> +++ b/gcc/configure
> @@ -12769,7 +12769,7 @@ else
> CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
> CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
> LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
> - GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \
> + GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
> ${realsrcdir}/configure \
> --enable-languages=${enable_languages-all} \
> ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \
> diff --git a/gcc/configure.ac b/gcc/configure.ac
> index 8c60c0f5e46..065080a4b39 100644
> --- a/gcc/configure.ac
> +++ b/gcc/configure.ac
> @@ -2065,7 +2065,7 @@ else
> CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
> CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
> LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
> - GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \
> + GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
> ${realsrcdir}/configure \
> --enable-languages=${enable_languages-all} \
> ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \
> --
> 2.25.1
>
next prev parent reply other threads:[~2021-10-28 7:05 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-27 20:05 [PATCH 0/5] OpenEmbedded/Yocto Project gcc patches Richard Purdie
2021-10-27 20:05 ` [PATCH 1/5] Makefile.in: Ensure build CPP/CPPFLAGS is used for build targets Richard Purdie
2021-10-28 7:04 ` Richard Biener [this message]
2021-10-28 14:43 ` Jeff Law
2021-10-27 20:05 ` [PATCH 2/5] gcc: Fix "argument list too long" from install-plugins Richard Purdie
2021-10-27 20:54 ` Bernhard Reutner-Fischer
2021-12-03 3:01 ` Jeff Law
2021-10-27 20:05 ` [PATCH 3/5] gcc: Add --nostdlib++ option Richard Purdie
2021-10-27 20:56 ` Bernhard Reutner-Fischer
2021-10-28 16:41 ` Richard Purdie
2021-12-03 3:05 ` Jeff Law
2021-10-28 14:51 ` Jeff Law
2021-10-28 16:39 ` Richard Purdie
2021-12-03 3:04 ` Jeff Law
2021-12-05 11:43 ` Richard Purdie
2021-12-06 6:10 ` Fāng-ruì Sòng
2021-10-27 20:05 ` [PATCH 4/5] gcc/nios2: Define the musl linker Richard Purdie
2021-10-28 14:46 ` Jeff Law
2021-10-27 20:05 ` [PATCH 5/5] gcc: Pass sysroot options to cpp for preprocessed source Richard Purdie
2021-12-14 23:47 ` Jeff Law
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAFiYyc2CyMS-pvBJyFinTovU1Se6_5_yiAcHo3b_C=5nU8g=Gw@mail.gmail.com' \
--to=richard.guenther@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).