public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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
>

  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).