Hi Matt, On Sat, Sep 5, 2026 at 9:29 PM Matt Turner <[email protected]> wrote: > > gcc supports __int128 on Alpha, and the 64x64 to 128-bit multiply that > the users in the scheduler and in lib/ care about maps onto mulq/umulh > rather than an out-of-line libgcc helper. > > Gate the select on CC_HAS_INT128 as the other 64-bit architectures do. > > Assisted-by: Claude:claude-opus-5 > Signed-off-by: Matt Turner <[email protected]> > Tested-by: Magnus Lindholm <[email protected]> > Reviewed-by: Magnus Lindholm <[email protected]> > --- > arch/alpha/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index 2672971b83f3..bed3f1c8d9d2 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -16,6 +16,7 @@ config ALPHA > select ARCH_NO_PREEMPT > select ARCH_NO_SG_CHAIN > select ARCH_SUPPORTS_ATOMIC_RMW > + select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 > select ARCH_USE_CMPXCHG_LOCKREF > select FORCE_PCI > select PCI_DOMAINS if PCI > > -- > 2.54.0 >
The kernel test robot reported undefined references to __ashlti3, __ashrti3 and __lshrti3 with CONFIG_CC_OPTIMIZE_FOR_SIZE=y. Alpha doesn't currently provide these helpers. CC_HAS_INT128 confirms support for the type, but doesn't guarantee that the generated code can link without libgcc. I suggest dropping "alpha: select ARCH_SUPPORTS_INT128" for now and bringing it back once the required helpers are implemented and tested with size-optimized builds, including UBSAN. Removing the select eliminates the missing references in the affected objects. There are no functional dependencies on this patch in the rest of for-next. I tested rebasing without it: the page-table-check and hugetlb patches each needed a small Kconfig context conflict resolved, keeping their own selects and omitting ARCH_SUPPORTS_INT128. The remaining commits replayed cleanly, and the resulting tree differs only by that one-line removal. Magnus

