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.pur...@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.pur...@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 >