On Thu, Oct 03, 2019 at 05:00:41PM +0100, Catalin Marinas wrote: > On Wed, Oct 02, 2019 at 03:41:51PM +0100, Vincenzo Frascino wrote: > > diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile > > index 84a3d502c5a5..dfa6a5cb99e4 100644 > > --- a/arch/arm64/Makefile > > +++ b/arch/arm64/Makefile > > @@ -53,20 +53,12 @@ $(warning Detected assembler with broken .inst; > > disassembly will be unreliable) > > endif > > endif > > > > +COMPATCC ?= $(CROSS_COMPILE_COMPAT)gcc > > +export COMPATCC > > + > > ifeq ($(CONFIG_GENERIC_COMPAT_VDSO), y) > > - CROSS_COMPILE_COMPAT ?= $(CONFIG_CROSS_COMPILE_COMPAT_VDSO:"%"=%) > > - > > - ifeq ($(CONFIG_CC_IS_CLANG), y) > > - $(warning CROSS_COMPILE_COMPAT is clang, the compat vDSO will not be > > built) > > - 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) > > - else > > - export CROSS_COMPILE_COMPAT > > - export CONFIG_COMPAT_VDSO := y > > - compat_vdso := -DCONFIG_COMPAT_VDSO=1 > > - endif > > + export CONFIG_COMPAT_VDSO := y > > + compat_vdso := -DCONFIG_COMPAT_VDSO=1 > > endif > > With this change, if I don't have any CROSS_COMPILE_COMPAT in my > environment, the kernel fails to build because COMPATCC becomes gcc > which cannot build the vdso32. What I really want is not to warn me, nor > fail to build the kernel when I don't care about the compat vDSO (e.g. I > have a 64-bit only machine). > > What saved us before was the COMPATCC_IS_ARM_GCC check and a selection > of the GENERIC_COMPAT_VDSO dependent on this check. This was now dropped > from the previous version of the patch. We could add something like > COMPATCC_CAN_LINK.
Ah, the COMPATCC_CAN_LINK idea doesn't help because an x86 gcc can still link. Maybe only enable CONFIG_COMPAT_VDSO above if CROSS_COMPILE_COMPAT was set. You could move the COMPATCC setting and export under the same 'if' block in the Makefile. -- Catalin

