• Mark Brown's avatar
    kselftest/arm64: Don't enable v8.5 for MTE selftest builds · 55c8a987
    Mark Brown authored
    Currently we set -march=armv8.5+memtag when building the MTE selftests,
    allowing the compiler to emit v8.5 and MTE instructions for anything it
    generates. This means that we may get code that will generate SIGILLs when
    run on older systems rather than skipping on non-MTE systems as should be
    the case. Most toolchains don't select any incompatible instructions but
    I have seen some reports which suggest that some may be appearing which do
    so. This is also potentially problematic in that if the compiler chooses to
    emit any MTE instructions for the C code it may interfere with the MTE
    usage we are trying to test.
    
    Since the only reason we are specifying this option is to allow us to
    assemble MTE instructions in mte_helper.S we can avoid these issues by
    moving to using a .arch directive there and adding the -march explicitly to
    the toolchain support check instead of the generic CFLAGS.
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20220928154517.173108-1-broonie@kernel.orgSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    55c8a987
mte_helper.S 2.38 KB