• Martin Storsjö's avatar
    configure: arm: Don't add -march= to the compiler if no preference was passed · cb8dc600
    Martin Storsjö authored
    If no --cpu= option was passed to configure, we detect what the
    compiler defaults to. This detected value was then fed back to the
    rest of the configure logic, as if it was an explicit choice.
    
    This breaks on Ubuntu 21.10 with GCC 11.1.
    
    Since GCC 8, it's possible to add configure extra features via the
    -march option, like e.g. -march=armv7-a+neon. If the -mfpu= option
    is configured to default to 'auto', the fpu setting gets taken
    from the -march option.
    
    GCC 11.1 in Ubuntu seems to be configured to use -mfpu=auto. This
    has the effect of breaking any compilation command that specifies
    -march=armv7-a, because the driver implicitly also adds -mfloat-abi=hard,
    and that combination results in this error:
    
        cc1: error: ‘-mfloat-abi=hard’: selected processor lacks an FPU
    
    One can compile successfully by passing e.g. -march=armv7-a+fp.
    
    Therefore, restructure configure. If no specific preference was set
    (and the 'cpu' configure variable was set as the output of
    probe_arm_arch), the value we tried to set via -march= was the same
    value that we just tried to detect as the compiler default.
    
    So instead, just try to detect what the compiler defaults to, with
    to allow setting other configure settings (such as 'fast_unaligned'),
    but don't try to spell out the compiler's default via the -march flag.
    Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
    cb8dc600
configure 255 KB