Message ID | 20190729125421.32482-1-vincenzo.frascino@arm.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | a22c5cf5d37ddcd4d2dd98ee9cf04fa5dd1e1c01 |
Headers | show |
Series | arm64: vdso: Fix Makefile regression | expand |
On Mon, Jul 29, 2019 at 2:54 PM Vincenzo Frascino <vincenzo.frascino@arm.com> 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 <will@kernel.org> > Cc: Catalin Marinas <catalin.marinas@arm.com> > Reported-by: Matteo Croce <mcroce@redhat.com> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@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 > Tested-by: Matteo Croce <mcroce@redhat.com>
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 <will@kernel.org> > Cc: Catalin Marinas <catalin.marinas@arm.com> > Reported-by: Matteo Croce <mcroce@redhat.com> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@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 <will@kernel.org> Will
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 <will@kernel.org> > Cc: Catalin Marinas <catalin.marinas@arm.com> > Reported-by: Matteo Croce <mcroce@redhat.com> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Queued for 5.3-rc3. Thanks.
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)
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 <will@kernel.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Reported-by: Matteo Croce <mcroce@redhat.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> --- arch/arm64/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)