• Masahiro Yamada's avatar
    int128: fix __uint128_t compiler test in Kconfig · 3a7c7331
    Masahiro Yamada authored
    The support for __uint128_t is dependent on the target bit size.
    
    GCC that defaults to the 32-bit can still build the 64-bit kernel
    with -m64 flag passed.
    
    However, $(cc-option,-D__SIZEOF_INT128__=0) is evaluated against the
    default machine bit, which may not match to the kernel it is building.
    
    Theoretically, this could be evaluated separately for 64BIT/32BIT.
    
      config CC_HAS_INT128
              bool
              default !$(cc-option,$(m64-flag) -D__SIZEOF_INT128__=0) if 64BIT
              default !$(cc-option,$(m32-flag) -D__SIZEOF_INT128__=0)
    
    I simplified it more because the 32-bit compiler is unlikely to support
    __uint128_t.
    
    Fixes: c12d3362 ("int128: move __uint128_t compiler test to Kconfig")
    Reported-by: default avatarGeorge Spelvin <lkml@sdf.org>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Tested-by: default avatarGeorge Spelvin <lkml@sdf.org>
    3a7c7331
Kconfig 72.3 KB