Hello, On Sat, 5 Aug 2017 00:25:00 +0200, Ralf Baechle wrote: > > Great! However, looking at the functions that end up calling __multi3, > > I'm wondering why suddenly gcc 7.x needs to call such a function, while > > the same code was compiling without __multi3 in libgcc with gcc 6.x. > > Chances are it's something specific to MIPS64 R6. Before trying your > config file I also tried a number of other defconfigs and all built > well. > > Here's a test case which generates a reference to __multi3: > > unsigned long func(unsigned long a, unsigned long b) > { > return a > (~0UL) / b; > } > > GCC rearanges above statement to: > > return (unsigned __int128)a * (unsigned __int128) b > 0xffffffff; And this is normal/expected ? Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com