Skip to content
Snippets Groups Projects
  • Richard Purdie's avatar
    84401ce5
    [PATCH 1/5] Makefile.in: Ensure build CPP/CPPFLAGS is used for build targets · 84401ce5
    Richard Purdie authored
    
    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.
    
    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: default avatarRichard Purdie <richard.purdie@linuxfoundation.org>
    84401ce5
    History
    [PATCH 1/5] Makefile.in: Ensure build CPP/CPPFLAGS is used for build targets
    Richard Purdie authored
    
    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.
    
    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: default avatarRichard Purdie <richard.purdie@linuxfoundation.org>