def is_arm_linux_eabi(triple):
    return ('arm' in triple) and ('linux' in triple) and ('eabi' in triple)

is_native = hasattr(config.root, 'target_triple') and (config.root.host_triple == config.root.target_triple)
if not is_native or not is_arm_linux_eabi(config.root.host_triple):
    config.unsupported = True
