Hi James, James Hogan wrote, > GCC7 is a bit too eager to generate suboptimal __multi3 calls (128bit > multiply with 128bit result) for MIPS64r6 builds, even in code which > doesn't explicitly use 128bit types, such as the following: > > unsigned long func(unsigned long a, unsigned long b) > { > return a > (~0UL) / b; > } > > Which GCC rearanges to: > > return (unsigned __int128)a * (unsigned __int128)b > 0xffffffff; > > Therefore implement __multi3, but only for MIPS64r6 with GCC7 as under > normal circumstances we wouldn't expect any calls to __multi3 to be > generated from kernel code. I tested the patch and it works fine for me. I can build a mips64r6 kernel and run the uClibc-ng testsuite inside qemu system emulation. It works for me with 4.9.x and 4.14.x kernels. Thanks Waldemar