On Mon, Jul 29, 2019 at 01:54:21PM +0100, Vincenzo Frascino wrote: > Using an old .config in combination with "make oldconfig" can cause > an incorrect detection of the compat compiler: > > $ grep CROSS_COMPILE_COMPAT .config > CONFIG_CROSS_COMPILE_COMPAT_VDSO="" > > $ make oldconfig && make > arch/arm64/Makefile:58: gcc not found, check CROSS_COMPILE_COMPAT. > Stop. > > Accordingly to the section 7.2 of the GNU Make manual "Syntax of > Conditionals", "When the value results from complex expansions of > variables and functions, expansions you would consider empty may > actually contain whitespace characters and thus are not seen as > empty. However, you can use the strip function to avoid interpreting > whitespace as a non-empty value." > > Fix the issue adding strip to the CROSS_COMPILE_COMPAT string > evaluation. > > Cc: Will Deacon <w...@kernel.org> > Cc: Catalin Marinas <catalin.mari...@arm.com> > Reported-by: Matteo Croce <mcr...@redhat.com> > Signed-off-by: Vincenzo Frascino <vincenzo.frasc...@arm.com> > --- > arch/arm64/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile > index bb1f1dbb34e8..61de992bbea3 100644 > --- a/arch/arm64/Makefile > +++ b/arch/arm64/Makefile > @@ -52,7 +52,7 @@ ifeq ($(CONFIG_GENERIC_COMPAT_VDSO), y) > > ifeq ($(CONFIG_CC_IS_CLANG), y) > $(warning CROSS_COMPILE_COMPAT is clang, the compat vDSO will not be > built) > - else ifeq ($(CROSS_COMPILE_COMPAT),) > + else ifeq ($(strip $(CROSS_COMPILE_COMPAT)),) > $(warning CROSS_COMPILE_COMPAT not defined or empty, the compat vDSO > will not be built) > else ifeq ($(shell which $(CROSS_COMPILE_COMPAT)gcc 2> /dev/null),) > $(error $(CROSS_COMPILE_COMPAT)gcc not found, check CROSS_COMPILE_COMPAT) > -- > 2.22.0
Acked-by: Will Deacon <w...@kernel.org> Will