[PATCH] cmake.mk, rules.mk: fix host builds using CMake and ccache
Ansuel Smith
ansuelsmth at gmail.com
Sat Nov 28 09:13:32 EST 2020
On Fri, Nov 27, 2020 at 03:47:45PM -0800, Rosen Penev wrote:
> On Fri, Nov 27, 2020 at 2:04 PM Petr Štetiar <ynezz at true.cz> wrote:
> >
> > Commit f98878e4c17d ("cmake.mk: set C/CXX compiler for host builds as
> > well") has introduced regression as it didn't taken usage of ccache into
> > the account so fix it by handling ccache use cases as well.
> >
> > In order to get this working we need to export HOSTCXX_NOCACHE in
> > rules.mk as well.
> That's annoying. I didn't know ccache was used with host packages.
> >
Can confirm that this fix the bug.
Tested-by: Ansuel Smith <ansuelsmth at gmail.com>
> > Fixes: f98878e4c17d ("cmake.mk: set C/CXX compiler for host builds as well")
> > Reported-by: Ansuel Smith <ansuelsmth at gmail.com>
> Acked-by: Rosen Penev <rosenp at gmail.com>
> > Signed-off-by: Petr Štetiar <ynezz at true.cz>
> > ---
> > include/cmake.mk | 18 ++++++++++++++++--
> > rules.mk | 1 +
> > 2 files changed, 17 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/cmake.mk b/include/cmake.mk
> > index 2cc10301aa4e..0a20530a16fe 100644
> > --- a/include/cmake.mk
> > +++ b/include/cmake.mk
> > @@ -23,12 +23,22 @@ ifeq ($(CONFIG_CCACHE),)
> > CMAKE_CXX_COMPILER:=$(call cmake_tool,$(TARGET_CXX))
> > CMAKE_C_COMPILER_ARG1:=
> > CMAKE_CXX_COMPILER_ARG1:=
> > +
> > + CMAKE_HOST_C_COMPILER:=$(HOSTCC)
> > + CMAKE_HOST_CXX_COMPILER:=$(HOSTCXX)
> > + CMAKE_HOST_C_COMPILER_ARG1:=
> > + CMAKE_HOST_CXX_COMPILER_ARG1:=
> > else
> > CCACHE:=$(STAGING_DIR_HOST)/bin/ccache
> > CMAKE_C_COMPILER:=$(CCACHE)
> > CMAKE_C_COMPILER_ARG1:=$(TARGET_CC_NOCACHE)
> > CMAKE_CXX_COMPILER:=$(CCACHE)
> > CMAKE_CXX_COMPILER_ARG1:=$(TARGET_CXX_NOCACHE)
> > +
> > + CMAKE_HOST_C_COMPILER:=$(CCACHE)
> > + CMAKE_HOST_C_COMPILER_ARG1:=$(HOSTCC_NOCACHE)
> > + CMAKE_HOST_CXX_COMPILER:=$(CCACHE)
> > + CMAKE_HOST_CXX_COMPILER_ARG1:=$(HOSTCXX_NOCACHE)
> > endif
> > CMAKE_AR:=$(call cmake_tool,$(TARGET_AR))
> > CMAKE_NM:=$(call cmake_tool,$(TARGET_NM))
> > @@ -97,8 +107,12 @@ define Host/Configure/Default
> > LDFLAGS="$(HOST_LDFLAGS)" \
> > cmake \
> > -DCMAKE_BUILD_TYPE=Release \
> > - -DCMAKE_C_COMPILER="$(HOSTCC)" \
> > - -DCMAKE_CXX_COMPILER="$(HOSTCXX)" \
> > + -DCMAKE_C_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
> > + -DCMAKE_C_COMPILER_ARG1="$(CMAKE_HOST_C_COMPILER_ARG1)" \
> > + -DCMAKE_CXX_COMPILER="$(CMAKE_HOST_CXX_COMPILER)" \
> > + -DCMAKE_CXX_COMPILER_ARG1="$(CMAKE_HOST_CXX_COMPILER_ARG1)" \
> > + -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
> > + -DCMAKE_ASM_COMPILER_ARG1="$(CMAKE_HOST_C_COMPILER_ARG1)" \
> > -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
> > -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
> > -DCMAKE_EXE_LINKER_FLAGS:STRING="$(HOST_LDFLAGS)" \
> > diff --git a/rules.mk b/rules.mk
> > index adb103d81f2f..34222a3a7199 100644
> > --- a/rules.mk
> > +++ b/rules.mk
> > @@ -292,6 +292,7 @@ HOSTCXX_NOCACHE:=$(HOSTCXX)
> > export TARGET_CC_NOCACHE
> > export TARGET_CXX_NOCACHE
> > export HOSTCC_NOCACHE
> > +export HOSTCXX_NOCACHE
> >
> > ifneq ($(CONFIG_CCACHE),)
> > TARGET_CC:= ccache_cc
More information about the openwrt-devel
mailing list