• Vincenzo Frascino's avatar
    arm64: vdso32: Fix broken compat vDSO build warnings · e0de01aa
    Vincenzo Frascino authored
    The .config file and the generated include/config/auto.conf can
    end up out of sync after a set of commands since
    CONFIG_CROSS_COMPILE_COMPAT_VDSO is not updated correctly.
    
    The sequence can be reproduced as follows:
    
    $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
    [...]
    $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
    [set CONFIG_CROSS_COMPILE_COMPAT_VDSO="arm-linux-gnueabihf-"]
    $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
    
    Which results in:
    
    arch/arm64/Makefile:62: CROSS_COMPILE_COMPAT not defined or empty,
    the compat vDSO will not be built
    
    even though the compat vDSO has been built:
    
    $ file arch/arm64/kernel/vdso32/vdso.so
    arch/arm64/kernel/vdso32/vdso.so: ELF 32-bit LSB pie executable, ARM,
    EABI5 version 1 (SYSV), dynamically linked,
    BuildID[sha1]=c67f6c786f2d2d6f86c71f708595594aa25247f6, stripped
    
    A similar case that involves changing the configuration parameter
    multiple times can be reconducted to the same family of problems.
    
    Remove the use of CONFIG_CROSS_COMPILE_COMPAT_VDSO altogether and
    instead rely on the cross-compiler prefix coming from the environment
    via CROSS_COMPILE_COMPAT, much like we do for the rest of the kernel.
    
    Cc: Will Deacon <will@kernel.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Reported-by: default avatarWill Deacon <will@kernel.org>
    Signed-off-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    e0de01aa
Makefile 5.77 KB